我有一个像这样的jQuery代码:
$(this).next().next().next().next().html('anything');
现在我想知道这些.next()
功能还有其他选择吗?(像4*next()
)
注意: .nextUntil()
对我没用,因为我没有任何线索可以使用它.nextUntil()
.(我的HTML结构是动态的.换句话说,它不是常量.有时候最后的元素是a span
,有时它是a div
等等......)
编辑:以下是我的HTML结构的一些示例:
例1:
div1div2span1 a1div3
例2:
span1 b1 span2div1div2div3
Josh Crozier.. 10
你可以结合.nextAll()
/ .eq()
方法:
$(this).nextAll().eq(3);
作为旁注,该.eq()
方法接受从零开始的索引,这意味着.eq(3)
将选择第四个元素.
$('div.nextAll span:first').nextAll().eq(3).addClass('selected');
$('div.multipleNext span:first').next().next().next().next().addClass('selected');
.selected {
color: #f00;
}
1234567
1234567
或者,正如评论中所指出的,您还可以使用通用兄弟组合子~
和:eq()
选择器的组合:
$('~:eq(3)', this);
要么:
$(this).find('~:eq(3)');
$('~:eq(3)', 'div.nextAll span:first').addClass('selected');
$('div.multipleNext span:first').next().next().next().next().addClass('selected');
.selected {
color: #f00;
}
1234567
1234567
你可以结合.nextAll()
/ .eq()
方法:
$(this).nextAll().eq(3);
作为旁注,该.eq()
方法接受从零开始的索引,这意味着.eq(3)
将选择第四个元素.
$('div.nextAll span:first').nextAll().eq(3).addClass('selected');
$('div.multipleNext span:first').next().next().next().next().addClass('selected');
.selected {
color: #f00;
}
1234567
1234567