내 제목이 거의 모호하다고 생각하지만 진실은 명확히하는 방법을 모르겠다 ... 그러므로 질문.형제/자녀/부모를위한 JQuery 선택자
HTML을
<tr>
<div class="thisis(this)inmyexample"></div>
<div class="stuff">
<div class="foo"></div>
</div>
</tr>
내 질문은 선택기의 차이에있다. 이제 나는이 사용하는 경우 .stuff
이 $(this)
의 형제가 있다고 가정합시다 : 이제
$(this).closest('tr').find('.stuff .foo')
을, 나는 이것이 효율적인 코딩이 아니라 그냥 쉬운 예로서 깨닫는다. 그것으로, 나는 의 아이들 인 .foo
의 모든 클래스를 발견 할 것입니다.
내가 이것을 사용하는 경우 :
$(this).siblings('.stuff .foo')
난 아무것도 찾을 수 없습니다. 이것은 아마도 jquery로 이야기 한 경험이 없지만 어쩌면 그런 종류의 셀렉터가 아닌 것입니까 ('.stuff.foo'
과 같이 공간을 사용하거나 둘 다 함께 사용하는 선택자를 무엇이라고 부릅니까?). 제 기대는 클래스가 .stuff
인 모든 형제를 찾아 의 모든 어린이를 .foo
클래스로 찾으십시오. 형제/자녀/부모가 형제/부모/자식만을 찾고 그 이상을 보지 않기 때문에 효과가 없습니까?
$(this).siblings('.stuff').children('.foo')
을 나는 내 목표를 달성 :
은 내가 이것을 사용할 수 있습니다 알고 있습니다. 나는 왜 내가 위의 선택기 (제대로 호출되는지)가 작동하지 않는지 궁금하다.
미리 감사드립니다.
@PranavRam 그렇기 때문에 '.stuff foo'가 결코 형제가 아니기 때문입니다. 맞습니까? – Aarmora
이것은 잘못된 HTML 마크 업입니다. –
@ A.Wolff HTML이 정말로 중요하다고 생각하지 않습니다.'.stuff'와'$ (this)'는 형제이며'.foo'는 자식입니다. '.stuff'의. 나는 틀린가? – Aarmora