요소의 .data()
객체에 저장된 값을 기반으로 요소를 선택해야 합니다. 최소한 선택기를 사용하여 최상위 데이터 속성을 선택하고 싶습니다.
$('a').data("category","music");
$('a:data(category=music)');
또는 선택기는 일반 속성 선택기 형식 일 수 있습니다.
$('a[category=music]');
또는 속성 형식이지만 지정자를 지정하여 다음을 나타냅니다 .data()
.
$('a[:category=music]');
내가 발견 한 제임스 Padolsey의 구현 봐 간단하면서도 좋은으로합니다. 위의 선택기는 해당 페이지에 표시된 미러 방법을 포맷합니다. 이 Sizzle 패치도 있습니다.
어떤 이유로 jQuery 1.4에 jquery .data()
객체의 값에 대한 선택기 지원이 포함되어 있다는 것을 잠시 되돌아 본 적이 있습니다. 그러나 이제는 찾고 있는데 찾을 수 없습니다. 어쩌면 내가 본 기능 요청 일 수도 있습니다. 이것에 대한 지원이 있고 그것을 보지 못하고 있습니까?
이상적으로는 점 표기법을 사용하여 data ()의 하위 속성을 지원하고 싶습니다. 이처럼 :
$('a').data("user",{name: {first:"Tom",last:"Smith"},username: "tomsmith"});
$('a[:user.name.first=Tom]');
또한 모든 지정된 데이터 선택기가있는 요소 만있는 여러 데이터 선택기를 지원하고 싶습니다. 일반 jquery 다중 선택기는 OR 연산을 수행합니다. 예를 들어 class 또는 )가있는 태그를 $('a.big, a.small')
선택 a
합니다 . AND를 찾고 있는데 아마도 다음과 같습니다.big
small
$('a').data("artist",{id: 3281, name: "Madonna"});
$('a').data("category","music");
$('a[:category=music && :artist.name=Madonna]');
마지막으로 비교 연산자와 정규식 기능을 데이터 선택기에서 사용할 수 있다면 좋을 것입니다. 따라서 $(a[:artist.id>5000])
가능할 것입니다. 나는 아마도 이것을 사용하여 이것을 많이 할 수 있다는 것을 알고 filter()
있지만 간단한 선택기 형식을 갖는 것이 좋을 것입니다.
이를 위해 어떤 솔루션을 사용할 수 있습니까? 현재 Jame의 Padolsey가 최고의 솔루션입니까? 내 관심사는 주로 성능뿐만 아니라 하위 속성 점 표기법 및 여러 데이터 선택기와 같은 추가 기능에 관한 것입니다. 이러한 것들을 지원하거나 어떤면에서 더 나은 다른 구현이 있습니까?