确定.closest()函数没有正确抓取元素或AT ALL,所以这个类没有被添加到div。这里有什么问题?jQuery最接近()不抓取元素
HTML:
<div class="half control-group">
<div class="form-status"></div>
<?php
echo form_label('Username', 'username');
echo form_input(array('name' => 'username', 'maxlength' => 25, 'value' => set_value('username')));
?>
</div>
JQuery的:
success: function(label) {
$(label).text('');
$(label).closest('div[class="form-status"]').addClass('success');
//label.text('OK!').addClass('valid').closest('.control-group').addClass('success');
}
它使文字去空白正确的,但它不会改变最接近的形式状态的div类......我甚至试过最接近( '.form-status'),它仍然不会抓住它。 我正在使用验证jQuery插件。 当您开始键入它增加了这个HTML的输入栏下方:
<label for="name" generated="true" class="error valid" style></label>
为寻找正确的答案,这工作:
label.closest('.control-group').find('div.form-status').addClass('success');
您应该删除您的评论下的答案。另外,可以很好地解释'div [class =“form-status”]'是容易出错的,因为只要向该div添加一个新类,它就会失败 –
@JuanMendes我删除了我的评论,但我认为对于多于一个类的问题,你已经清楚了;) –
This:$(label).prev('div.form-status')。addClass('success');仍然无法正常工作..它不会将该类添加到DIV中。而且Chrome调试器不会像jQuery搞乱一般时那样抛出任何错误消息。 – Peanut