20

私が持っているとしましょう

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

それを操作するためのJQueryオブジェクトとしてdivより上になりたいです。私はそれを見つけようとします:

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

と:

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

どちらも運がない。見つかった変数が空です。私は何が間違っていますか?

PSはい私は自分のdivに直接アクセスできることを知っています

$("#demo_div") 

しかし、私の場合はそれを行うことができません-testHTML varを使用した例のように、いくつかの変数に割り当てられるプレーンHTMLから取得する必要があります。

更新:ここのような ルートdiv要素がない場合でも:

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

div要素をナビゲートするためにfindを使用できません。

4

2 に答える 2

50

問題は、yourがコレクションのルート要素であるため、 (子孫要素のみを参照する)の代わりにdivを使用する必要があることです。.filter().find()

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

実際のHTML文字列は、質問の文字列よりも複雑であると想定しています。そうでない場合は、それ以外のことを行う必要はなく、$(testHTML)その単一の要素を含むjQueryオブジェクトが作成されます。

于 2012-11-16T09:05:26.427 に答える
1

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

testHTML.search('demo_div')>-1
于 2017-09-07T04:59:41.730 に答える