jQuery에 트러블이 있습니다. 요소 만 선택하는 선택기를 작성하는 방법, 마녀에는 데이터 속성과 특정 값이 있습니다.
노력하고있어:
$('form').find('*[data-root!=0]')
데이터 루트 유무에 관계없이 모든 요소를 반환합니다.
$('form').find('*[data-root]').find('*[data-root!="0"]')
이 코드는 아무것도 반환하지 않습니다.
을 제거합니다 *
. 또한 find
. [data-root]
자체적 으로 추가해야합니다 . 이 모든 자손 요소 발견 form
이 요소 data-root
가 아닌 값을 0
:
$('form [data-root][data-root!=0]')
0
따옴표를 넣는 것이 더 편할 것이라고 생각하지만 :
$('form [data-root][data-root!="0"]')
때문 0
유효하지 않습니다 CSS 식별자 와 속성의 값이 유효한 CSS 식별자 또는이어야 문자열 (따옴표 예) (더 여기 ).
선택기 설명 :
form [data-root] [data-root! = "0"] / ^^ \ ^ / ^^^^^^^^^ \ / ^^^^^^^^^^^^^^ \ | | | | | | | + −−− 속성은 "0"과 같을 수 없습니다. | | + −−−−−−−−−−−−−−−− 속성 | + −−−−−−−−−−−−−−−−−−−−−는 자손 ... + −−−−−−−−−−−−−−−−−−− −−−−− ...`form`의
라이브 예 :
$('form [data-root][data-root!="0"]').each(function(i) {
console.log(i + ": " + $(this).text());
});
<form>
<div data-root="0">no match (value is 0)</div>
<div>no match (no attribute)</div>
<div data-root="1">match (value is "1")</div>
</form>
<form>
<div data-root="0">no match again (value is 0)</div>
<div>no match again (no attribute)</div>
<div data-root="">match (value is "")</div>
<div data-root="2">match (value is "2")</div>
</form>
<div data-root="3">no match (not in a <code>form</code>)</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다