为什么它会返回一个错误?
未捕获TypeError:对象没有方法“”replace“”
我想选择.x
的第一个子节点,直到.x
的第三个子节点
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);
发布于 2011-04-09 18:14:16
$.nextUntil
需要字符串,而不是对象。在您的示例中,您正在传递一个对象,该对象没有replace
方法。您需要传递选择器。
你可以试着这样做:
alert(a.eq(0).nextUntil('.d').length);
或者,如果您事先不知道具体的选择器:
alert(a.eq(0).nextAll().slice(2).length);
发布于 2011-04-09 18:11:23
.nextUntil()
接受选择器,而不是对象。尝试:
alert( a.eq(0).nextUntil( '.' + a.eq(3).attr('class') ).length );
发布于 2011-04-09 18:15:05
nextUntil
方法接受一个选择器,而不是一个元素。
此外,不应该在nextUntil
之前使用eq(0)
,这会将集合减少到第一个元素,并且不能循环到只有一个元素的集合中的第三个元素。
a=$('.x').children();
alert(a.nextUntil('.c').length);
https://stackoverflow.com/questions/5606841
复制