2012-01-18 2 views
2

여기 붙어있어 :하나의 속성을 기반으로 요소를 선택하고 다른 속성을 가진 요소를 제외하는 방법은 무엇입니까?

가 나는 데이터 내부 페이지 = "true"로 속성을 수행하지 않는 속성 데이터 역할 = "페이지" 모든 div의를 선택합니다.

이 작동하지 않습니다

$('div:jqmData(role="page")').not('div:jqmData(internal-page="true")') 

누군가는 구문에 문제가 있는지 말해 줄래? 두 번째 속성은 항상 무시됩니다.

도움 주셔서 감사합니다.

+0

데이터 내부 페이지입니까? 그렇다면 그것은 div가 아니어야합니다 : jqmData (data-internal-page = "true"). –

+0

jquery-mobile은 jqmData (some = "thing")를 사용하여 data-some = "thing"이됩니다. – frequent

답변

2

나는 jqmData을 사용하지 않지만 모두 data-attribute을 조회하지 않고 jQuery Mobile과 관련된 것만 조회 할 수도 있습니다. 일반 속성 선택기를 사용해보십시오 :

$('[data-role="page"]').not('[data-internal-page="true"]') 
+0

나는 그것에 대해서도 생각했다.하지만 6 개 div 중 6 개를 반환했다. 그곳은 오직 1이되어야한다. 또한, 당신의 표현은 다음과 같다 : 잡히지 않는 예외 : 구문 오류 – frequent

+0

두 번째 선택기에 콜론이 생겼다. 내 예를 들어, 데모를보십시오 : http://jsfiddle.net/Y4mxw/ – Jasper

+0

예. 또한 작동합니다. 고마워. 내가 선호하기 때문에 : 아닙니다 ... 당신은 끄덕임을 얻습니다 :-) – frequent

0

당신은 그것을 할 수 있습니다 : 당신이 태그 이름을 사용하지 않는 경우 선택기 빠르게 실행됩니다 http://jsfiddle.net/Y4mxw/

참고 : 여기에

$('div[data-role="page"]').not('div[data-internal-page="true"]') 

는 데모입니다 네이티브 jquery (선택기 플러그인/확장 프로그램 없음) :

var $divs = $('div[data-role="page"]:not([internal-page="true"])'); 

DEMO

+0

nope. 또한 6. 무엇이 잘못되었는지 알아 냈습니다 ... 다른 스크립트가 데이터 내부 페이지를 지정하기 전에 호출하고 있습니다 – frequent

+0

"또한 6"을 의미합니까? –

+0

죄송합니다. 나는 6 div 엘리먼트를 가지고 있는데, 5 번째 엘리먼트는 2 번째 애트리뷰트를 가지며 선택 항목에 포함되면 안된다. – frequent

0

타이밍 ... 나는 선택 correclty를 호출했지만, 2 속성이 할당되기 전에. 시간 제한을 설정하면 다음과 같이 표시됩니다.

window.setTimeout(function() { 
    console.log($('div:jqmData(role="page")').not('div:jqmData(internal-page="true")').length);  
    },500); 

모두에게 도움을 청합니다!

관련 문제