2012-11-16 18 views
19

だが、私はそれを操作するためのjQueryオブジェクトとしてのdiv上で取得したいHTML文字列の要素を探す

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

を持っているとしましょう。運なし

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

両方:

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

とと:私はそれを探してみてください。私は空を持っています変数です。私は何が間違っていますか?

P.S.はい、私は私が

$("#demo_div") 

と私ののdivに直接アクセスすることができますが、私は私の場合にはそれを行うことはできません知っている - 私は同じように、いくつかの変数に代入されますプレーンなHTMLからそれを取得する必要があります私の例ではtestHTML var。

UPDATE: 私はここのようなのdiv要素根絶されていない場合でも:

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

私はのdiv要素を移動するためのを見つけるを使用することはできませんが。

答えて

48

問題は、あなたのdivは、コレクション内のルート要素であるということですので、あなたは(だけ子孫要素を見ます).filter()の代わり.find()使用する必要があります。私はあなたの実際のHTMLを想定してい

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

を文字列は質問のものより複雑です。そうでなければ、$(testHTML)以外は何もする必要はなく、その単一の要素を含むjQueryオブジェクトがあります。

+1

はい私はより複雑なHTMLを持ち、divはそのルートではありません。しかし、_find_はそこでは動作しません! –

+3

@MichaelZ - あなたの問題はおそらく他の場所にあります。探している要素がコレクションのルートにある場合は、 '.filter()'を使用し、そうでなければ '.find()'を使用します。 [この例](http://jsfiddle.net/jamesallardice/CWnvu/1/)を参照してください。 –

+0

自分のアップデートを見て自分で試してください –

0

javascript自体の.search()機能を使用できます。

testHTML.search('demo_div')>-1 
関連する問題