2012-11-16 3 views
19

에서 찾기 요소의 나는 내가 그것으로 조작 할 수 JQuery와 객체로서 사업부 위 싶어HTML 문자열

var testHTML = "<div id='demo_div'></div>"; 

이 있다고 가정하자.

var found = $(testHTML).find("#demo_div"); 

과 함께 : 나는 그것을 찾으려고

var found = $(testHTML).find("div"); 

모두 행운을하지 않고. 나는 비어 있습니다 변수를 발견했습니다. 내가 뭘 잘못 했니?

P. 예 나는

$("#demo_div") 

DIV에 직접 액세스 할 수 있습니다 알고 있지만 내 경우에 그것을 할 수 없다 - 나는 몇 가지 변수 단지 등으로 지정됩니다 일반 HTML에서 그것을 얻을 필요 내 예 : testHTML var.

UPDATE : 요소 여기에 같은 내가 뿌리를하지 않은 경우에도 사업부 :

var testHTML = "<html><div id='demo_div'></div></html>"; 

내가 DIV 요소를 탐색하는를 찾을 수 없습니다.

답변

48

문제는 div이 컬렉션의 루트 요소라는 것이다, 그래서 당신은 (단지 하위 요소에 보이는) .filter() 대신 .find() 사용할 필요가 : 나는 실제 HTML을 믿고있어

var found = $(testHTML).filter("#demo_div"); 

을 string은 질문에있는 것보다 더 복잡합니다. 그렇지 않으면 $(testHTML) 이외의 것을 수행 할 필요가 없으며 그 단일 요소를 포함하는 jQuery 객체를 갖게됩니다.

+1

예 더 복잡한 HTML이 있고 div는 그 루트가 아닙니다. 하지만 _find_는 거기서 작동하지 않습니다! –

+3

@MichaelZ - 그렇다면 문제는 다른 곳에서 발생할 가능성이 큽니다. 찾으려는 원소가 콜렉션의 루트에 있으면'.filter()'를 사용하고 그렇지 않으면'.find()'를 사용하십시오. [이 예제] (http://jsfiddle.net/jamesallardice/CWnvu/1/)를 참조하십시오. –

+0

내 업데이트를보고 직접 시도하십시오. –

0

자바 스크립트 자체의 .search() 함수를 사용할 수 있습니다.

testHTML.search('demo_div')>-1