我查看了JQuery
与该.next()
方法有关的文档,该文档指出:
给定一个表示一组DOM元素的jQuery对象,.next()方法使我们可以在DOM树中搜索这些元素的后继同级,并从匹配的元素构造一个新的jQuery对象。
该方法可选地接受与我们可以传递给$()函数的类型相同的选择器表达式。如果紧随其后的同级匹配选择器,则它将保留在新构造的jQuery对象中;否则,将其排除在外。
我正在尝试像这样在div中定位一个元素:
$("input[name='first-name'").keyup(function () {
if (!name($(this).val())) {
$(this).parent().next(".fa-times").removeClass('hide');
$(this).parent().next(".fa-check").addClass('hide');
$(this).css({
"background": "rgb(237, 209, 209)",
"color": "red",
"border": "1px solid red"
});
} else {
$(this).parent().next(".fa-times").addClass('hide');
$(this).parent().next(".fa-check").removeClass('hide');
$(this).css({
"background": "rgb(209, 237, 209)",
"color": "green",
"border": "1px solid green"
});
}
});
标记如下:
<div class="col-md-6">
<label class="control-label">First Name</label>
<div id="fname-input">
<span class="wpcf7-form-control-wrap first-name">
<input type="text" name="first-name" value="" size="40" maxlength="80" minlength="2" aria-required="true" aria-invalid="false>
</span>
<i class="fa fa-times hide"></i>
<i class="fa fa-check hide"></i>
</div>
</div>
fa-times
在这两种情况下,我都可以使用以下行删除类隐藏:
$(this).parent().next(".fa-times").removeClass('hide');
但是由于某些原因我无法接机fa-check
。我想知道是因为这个原因:
如果紧随其后的同级匹配选择器,则它将保留在新构造的jQuery对象中;否则,将其排除在外。
如果是这样,任何人都可以向我建议我要去哪里哪里以及检测类中下一个元素的下一个最佳方法fa-check
。
我现在正在使用JS小提琴,将在工作后尽快发布。
因为fa-check
不是下一个同级输入的父元素。您可以使用.siblings()或.nextAll()
.next()不会获取与给定选择器匹配的下一个兄弟姐妹,它将仅搜索下一个兄弟元素,然后检查是否与给定选择器匹配。
$(this).parent().nextAll(".fa-check").removeClass('hide');
$(this).parent().siblings(".fa-check").removeClass('hide');
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句