2011-04-09 3 views
3

왜 오류가 반환됩니까?nextUntil() jQuery 선택자

http://jsfiddle.net/L82JU/

catch되지 않은 형식 오류 : 개체 [개체 개체] 어떤 방법 난의 셋째 아이까지 .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); 
+0

브라우저 특정? Chrome에 아무런 오류가 없습니다. –

+0

@Anwar Chandra : Chrome이 객체에 대해 다른 문자열 값을 제공 할 가능성이 있습니다.이 값은 jQuery에서 구문 분석 오류가 발생하지 않지만 사용할 수있는 것을 제공하지는 않습니다. 선택기로, 그래서 그것은 제대로 작동하지 않습니다. – Guffa

답변

1

$.nextUntil 문자열이 아닌 객체를 기대하고있다. 귀하의 예에서는 replace 메서드가없는 개체를 전달하고 있습니다. 선택기를 전달해야합니다. 당신은 시간의 미리 특정 선택기를 모르는 경우

alert(a.eq(0).nextUntil('.d').length); 

을 또는 :

당신은 대신을 시도 할 수

alert(a.eq(0).nextAll().slice(2).length); 

nextUntil 방법은 선택을합니다 http://jsfiddle.net/L82JU/5/

1

, 요소가 아닙니다.

또한 nextUntil 앞에 eq(0)을 사용하면 컬렉션을 첫 번째 요소로 줄이고 하나의 요소 만 사용하여 컬렉션의 세 번째 요소로 반복 할 수 없습니다.

http://jsfiddle.net/L82JU/4/

a=$('.x').children(); 
alert(a.nextUntil('.c').length); 
1

나는 오히려 빠르고 짧은이야, 이런 식을 작성합니다

$('.x').children(':lt(4)'); 

이것은 '.x를'모든 아이를 선택 미만 4 (1 삼).