HTML:
<div class="my_1"></div>
<div class="my_big">
<div class="small" id="id_1"></div>
<div class="small" id="id_2"></div>
<div class="small" id="id_3"></div>
<div class="small" id="id_4"></div>
</div>
的javascript:
var css_scope=$(".my_big");
var next_div=$(".my_1").nextAll('.small',css_scope).first();
console.log(" \n next div = "+ next_div.attr('id'));
控制台显示undefined
。但是如果我从html中排除my_big
div并在javascript中定义var next_div
,则如下所示:
var next_div=$(".my_1").nextAll('.small').first();
,
获得预期的产出。
如何让nextAll()
使用上面提到的css范围?
答案 0 :(得分:0)
.nextAll
用于查找所有下一个兄弟姐妹,您应该从.small
的结果中找到nextAll
。
var next_div=$(".my_1").nextAll('.my_big').find('.small').first();
答案 1 :(得分:0)
你无法使用.small
从my_1
获取nextAll()
,因为他们不是兄弟姐妹。您可以使用以下选择器访问它。
// Get the first element matching ".small" inside an element matching ".my_big"
// that comes immediately after an element matching ".my_1"
var next_div = $('.my_1 + .my_big > .small:first');
答案 2 :(得分:0)
如果您想访问my_big
div中的第一个元素,则无需将my_1
带入场景。
var next_div = $('.my_big').find('.small').first();
console.log(" \n next div = "+ next_div.attr('id'));
希望它能在某些方面澄清你在jQuery中遍历元素。