2011-11-23 2 views
0

나는 이것으로 전에 고투 기억하지만 봤 거든 참조를 찾을 수 없습니다. 내가 원한다 :문서 외부에서 찾기()

var x = $('<div class="y">xxx</div>'); 
x.find('.y'); // returns 0 elements 

그리고 1 요소를 찾을 것으로 기대하지만 0을 찾는다. 비슷한 실패로 시도 :

var x = $('<div class="y">xxx</div>'); 
$(document).append(x); 
alert($(document).find('.y').length); // also returns 0 elements 

무엇을 제공합니까?

+0

게시물을 할 수 시도해 볼 수도 있습니다 반환 된 요소를 가져올 것으로 예상되는 HTML. –

+0

어디에 넣으려고합니까? 그것은 문서 밖에서 많은 효과가 없을 것입니다. (어쨌든 작동하지 않으므로 ...) – Purag

답변

2
var x = $('<div class="y">xxx</div>'); 
x.find('.y'); 

무엇을 당신이 그것을 말하고있는 것은 요소 자체가 당신을 위해 무엇을 찾고있을 때 내에서 새로 만든 요소를 ​​클래스 y인 요소를 찾을 수 있기 때문에이 작동하지 않습니다.

Here 작동 무언가이다 : 당신의 검색 "내부"사업부 때문에

$('<div class="y">xxx</div>') 
    .appendTo("html"); 

alert($('.y').length); 
2

x.find('.y')을 입력하면 의 하위 항목을 검색하여 y 클래스의 개체를 찾습니다. x 자체는 검색하지 않습니다. 당신이 이런 짓을하면

, 당신은 그것을 찾아 낼 것입니다 : http://jsfiddle.net/jfriend00/bWxB4/ :

var x = $('<div><div class="y">xxx</div></div>'); 
x.find('.y'); 

당신이있어 그 일을 볼 수 있습니다.

+0

오 그리스도. 당연하지! 그게 작동하기 위해서'$ ('

xxx
')와 같은 것이 있어야합니다 ... 누군가 나를 쏜다 – ekkis

+0

왜 누군가는 이것을 downvote 했습니까? 나는 downvote가 이유/설명을 요구했으면 좋겠다. – jfriend00

+0

시도 및 실패 : http://meta.stackexchange.com/questions/6521/allow-users-to-leave-an-anonymous-comment-when-voting – Purag

2

.find()은 jQuery DOMElement의 하위 항목을 검색합니다. 가지고있는 요소에는 (DOMElement) 자손이 없으며 유일한 하위 노드는 데이터가 xxx 인 텍스트 노드입니다. 사업부 클래스 y와 자손을 가지고

var $x = $('<div><div class="y">xxx</div></div>'); 
$x.find('.y'); 

이후 :

이 하나 개의 결과를 찾을 수 있습니다.

0

첫 번째 문제는, 그래서 찾기() 메소드는 아무것도 찾을 수 없습니다.

당신은 시도 할 수 : 문서에 추가 할 때

var x = $('<div><div class="y">xxx</div></div>'); 
x.find('.y'); //1 element 

두 번째를, 그리고 정말 DOM에 아무것도 추가하지 않습니다, 당신은 당신에게

var x = $('<div class="y">xxx</div>'); 
$(document.body).append(x); 
alert($(document).find('.y').length); //1 
관련 문제