2013-05-15 2 views
4

나는

[ 
<div data-role=​"page" id=​"home" class=​"home ui-page ui-body-c" tabindex=​"0" style=​"min-height:​ 548px;​">​…​</div>​ 
, 
<div data-role=​"page" id=​"login" class=​"login ui-page ui-body-c ui-page-active" tabindex=​"0" style>​…​</div>​ 
] 

인 변수 pages

pages = $("[data-role=page]:not([data-url])"); 

을하지만 pages.index(".ui-page-active")를 사용할 때 나는 -1 얻을 - 잘못된 결과. 적절한 결과 - 나는 pages.index(".ui-page")을 검색 할 때

는 그러나, 나는 1 얻을.

아이디어가 있으십니까?

UPDATE :

pages.index($('.ui-page-active')) 반환 1 - 적절한 결과! 그렇다면 the selector option은 왜 작동하지 않습니까?

+0

최소한의 jsfiddle 테스트 케이스를 만드십시오. jquery mobile이없는 일반 브라우저에서 재생할 수 있습니까? – user2246674

+1

가 난. 당신이 ('. UI 페이지 활성')'$를 원한다고 생각 지수 (페이지)' –

+0

즉,이 일을 문서화하는 방법 아니기 때문에 예상대로 작동하지 않습니다. 셀렉터와 일치하는 현재 컬렉션의 요소 인덱스를 찾지 못하면 전달 된 선택기와 일치하는 요소의 컬렉션에서 첫 번째 요소의 인덱스를 찾습니다. –

답변

3

.index() 방법은 통과 선택기의 모든 요소 사이에 그것을 위해 먼저 현재 선택의 요소와 검색을합니다. 내가 할 때

It may help to look at the responsible code

See the docs

그래서 :

$('.a').index('.b'); 

그것은 당신에게 모든 내 최초의 .a 요소의 인덱스를 줄 것이다는 .b 요소를 발견했다.

// Find '.ui-page' within the '[data-role=page]:not([data-url])' set: 
$('.ui-page').index('[data-role=page]:not([data-url])'); 

그러나 이것은 단지 당신이 전달 셀렉터에 일치하는 요소의 첫 .ui-page 요소에 대해 살펴 보겠습니다 참고 :

그것은 당신이 원하는 것은 그래서 아마도 당신이 무엇을 반대 것 같다 index(...).

관련 문제