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

Ell*_* B. 11 html javascript jquery

假设我有这个HTML:

 <textarea>blah</textarea>
 <br>
 <div class="select_this">hello!</div>
Run Code Online (Sandbox Code Playgroud)

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

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

lon*_*day 19

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

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

$('textarea').nextAll('div.select_this').first();
Run Code Online (Sandbox Code Playgroud)

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

$('textarea').nextUntil('div.select_this').andSelf().last().next();
Run Code Online (Sandbox Code Playgroud)

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

编辑将andSelf以下评论纳入其中.