为什么会返回错误?
未捕获的TypeError:对象[object Object]没有方法'replace'
我想选择.x
的第一个孩子,直到.x
的第3个孩子
HTML
<div class="x">
<div class="a">a</div>
<div class="b">b</div>
<div class="c">c</div>
<div class="d">d</div>
<div class="e">e</div>
</div>
jquery的
a=$('.x').children();
alert(a.eq(0).nextUntil(a.eq(3)).length);
答案 0 :(得分:3)
.nextUntil()
使选择器不是对象。尝试:
alert( a.eq(0).nextUntil( '.' + a.eq(3).attr('class') ).length );
答案 1 :(得分:1)
$.nextUntil
需要一个字符串,而不是一个对象。在您的示例中,您传递的对象没有replace
方法。你需要传递选择器。
您可以尝试这样做:
alert(a.eq(0).nextUntil('.d').length);
或者如果您未提前知道具体的选择器:
alert(a.eq(0).nextAll().slice(2).length);
答案 2 :(得分:1)
nextUntil
方法采用选择器,而不是元素。
此外,您不应在eq(0)
之前使用nextUntil
,这会将集合减少到第一个元素,并且您不能循环到只有一个元素的集合中的第三个元素。 / p>
a=$('.x').children();
alert(a.nextUntil('.c').length);
答案 3 :(得分:1)
我宁愿这样写,它更快更短:
$('.x').children(':lt(4)');
这将选择“.x”的所有子项,小于4(1-3)。