[英]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();
另请注意,最好使用第first
和last
方法,而不是相应的选择器( :first
, :last
),因为浏览器本身并不理解选择器,这会大大降低表达式。
编辑将andSelf
评论纳入andSelf
评。
你想要nextAll
:
jQuery(yourTextarea).nextAll('.select_this:first');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.