繁体   English   中英

jQuery选择器,用于查找与选择器匹配的给定元素之后的第一个元素

[英]jQuery selector for finding the first element after a given element that matches a selector

假设我有这个HTML:

 <textarea>blah</textarea>
 <br>
 <div class="select_this">hello!</div>

当我已经识别出textarea时,如何选择带有“select_this”类的DIV? 我不想在整个文档上使用类选择器,因为我正在使用大型文档,并且在旧版浏览器中类查找速度很慢。

jQuery .next()似乎没有做到这一点,nearest()只查找DOM树,而.nextUntil()限定了我需要的一切,除了“select_this”div。 还有其他选择吗?

有两种方法可以做到这一点。

如果您只有几个兄弟姐妹,请使用此选项:

$('textarea').nextAll('div.select_this').first();

这样做的缺点是它会测试每个后续元素,看它是否与选择器匹配,即使它找到了第一个元素。 如果你有许多兄弟姐妹,请使用它来保存评估:

$('textarea').nextUntil('div.select_this').andSelf().last().next();

另请注意,最好使用第firstlast方法,而不是相应的选择器( :first:last ),因为浏览器本身并不理解选择器,这会大大降低表达式。

编辑将andSelf评论纳入andSelf评。

你想要nextAll

jQuery(yourTextarea).nextAll('.select_this:first');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM