假设我有这个
HTML:
<textarea>blah</textarea> <br> <div class="select_this">hello!</div>
当我已经识别了textarea时,如何使用类“select_this”选择DIV?我不想在整个文档中使用类选择器,因为我正在使用大型文档,而在较老的浏览器中,类查找速度较慢.
jQuery .next()似乎没有这样做,最近()只查找DOM树,而.nextUntil()符合我所需要的一切,除了“select_this”div.有什么其他的选择吗?
解决方法
有两种方法可以实现.
如果你只有几个兄弟姐妹:
$('textarea').nextAll('div.select_this').first();
这样做的缺点是,它会测试每个后续元素,以查看它是否与选择器匹配,即使在找到第一个元素之后.如果你有很多很多兄弟姐妹,可以使用这个来保存评估:
$('textarea').nextUntil('div.select_this').andSelf().last().next();
还要注意,最好使用first
和last
方法,而不是使用相应的选择器(:first
,:last
),因为浏览器本身不了解选择器,这会大大降低表达式.
编辑以合并和自己的评论如下.