2016-07-11 5 views
0

jQuery를 사용하여 '오류'데이터가 바인딩 된 모든 태그를 찾아야합니다. 이것은 내가 한 일입니다. 코드로 데이터 속성을 추가했기 때문에 작동하지 않습니다.특정 데이터 속성을 가진 모든 태그를 찾는 방법은 무엇입니까?

$('form input').data('error',1); 

console.log($('form input[data-error]')); // This is empty 

어떻게 모두 검색 할 수 있습니까?

+0

실제로 호출 된 속성은 무엇입니까? 'valid-error','data-error' 또는'data-valid-error'? – Xufox

+0

예, 수정했습니다. – rostamiani

+0

데이터 jQuery 메서드는 내부적으로 그 값을 유지하는 데이터 특성을 만들지 않습니다. – jcubic

답변

4

사용 filter()

$('form input').filter(function(){ 
    return $(this).data('error'); // adjust if boolean not sufficient  
}).doSomething(); 
+0

감사. 그냥 작동합니다. – rostamiani

+0

수락되었습니다. 사실 나는 그것을하기 위해 5 분을 기다려야 만했다 :-) – rostamiani

+1

요소 속성 setter가 거의 모든 경우에 실제로 속성을 업데이트하지 않는다는 것을 알아야한다. – charlietfl

0
당신은 (어떤 jQuery를이 필요하지 않습니다), 간단하게 사용하는 기본 자바 스크립트를 사용할 수

하십시오 Selectors Level 3 (CSS와 유사)와

Document.querySelectorAll()

var elms = document.querySelectorAll('[data-animal-type="fish"]'); 
 
console.log(elms.length);
<li data-animal-type="bird">Owl</li> 
 
<li data-animal-type="fish">Salmon</li> 
 
<li data-animal-type="spider">Tarantula</li>

선택기는 매우 강력하고 고급 선택처럼 수 :

E [foo는^= "바"] 누구의 E 요소 "foo는"속성 값이 정확히 문자열 "바"E와 을 시작 [foo는 $ = "bar"] "foo"문자열의 속성 값이 문자열 "bar"로 정확하게 끝나는 E 요소 E [foo * = "bar"] E "foo"속성 값에 부분 문자열 "bar"가 포함 된 요소
E [foo | = "en"] "foo"속성이 하이픈으로 분리 된 E 요소 "en"으로 시작하는 값의 목록 (왼쪽부터) "012"en "

관련 문제