다음과 같은 마크 업이 있다고 가정 해 보겠습니다.
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
#moo를 선택하고 싶어요.
왜 $('#foo').find('span')
작동하지만 $('span', $('#foo'));
그렇지 않습니까?
다음과 같은 마크 업이 있다고 가정 해 보겠습니다.
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
#moo를 선택하고 싶어요.
왜 $('#foo').find('span')
작동하지만 $('span', $('#foo'));
그렇지 않습니까?
var ele = $("div #foo")
여기에서 어떻게 moo에 도달 할 수 있는지 (배열 참조를 사용하지 않고)
답변:
이 중 하나를 사용할 수 있습니다 [가장 빠른 것부터]
$("#moo") > $("#foo #moo") > $("div#foo span#moo") > $("#foo span") > $("#foo > #moo")
사실, $ ( '# id', this); 직계 자식뿐만 아니라 모든 하위 수준에서 #id를 선택합니다. 대신 이것을 시도하십시오.
$(this).children('#id');
또는
$("#foo > #moo")
또는
$("#foo > span")
moo
하지 않습니다.
.children()
와는 .find()
단 한 수준 DOM 하위 트리 아래 전 여행 것을 제외하고 비슷합니다.
find
옵션을 사용 하여 다른 요소 내부의 요소를 선택할 수 있습니다 . 예를 들어 특정 div에서 id가 txtName 인 요소를 찾으 려면 다음과 같이 사용할 수 있습니다.
var name = $('#div1').find('#txtName').val();
둘 다 작동하는 것 같습니다.
바이올린 참조 : http://jsfiddle.net/maniator/PSxkS/
$('#moo')
? ;) Btw. 작동합니다 : jsfiddle.net/fkling/k5X2r