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

时间:2012-05-22 17:52:39

标签: javascript jquery html

假设我有这个HTML:

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

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

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

2 个答案:

答案 0 :(得分:19)

有两种方法可以做到。

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

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

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

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

另请注意,最好使用firstlast方法,而不是相应的选择器(:first:last),因为浏览器本身并不理解选择器,大大减慢了表达速度。

编辑以在下面的评论中加入andSelf

答案 1 :(得分:3)

您想要nextAll

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