2011-02-08 15 views
0

文字列のhtmlから最初のテーブルと2番目のテーブルを選択する必要があります。私は、これは、セレクタ:eq(0):eq(1)によって行うことができます知っているが、jQuery - 文字列から要素を選択する

var firstTable = $("table", "<table></table>").length; 

firstTable == 0。どうして?

答えて

1

は、問題を説明するために、このようにそれを試してみてください。

+0

私は通常、 'context'スタイルの選択を使用しませんが、HTML文字列を渡すことは間違いありません。$(selector、context) 'は' $(context).find(selector) 'に相当します。私の答えを編集する時間。 +1 –

+1

@Matt、私はそれをあまり使っていません。私も 'x.find(y)'の流れを好みます。 –

2

jQuery()(別名$())に2番目の引数を渡すときは、というコンテキストを指定して検索します。

$(selector, context); 

がこれに相当します:それは、これですので

$(context).find(selector); 

、あなたはそれがtable要素を見つけていない理由を表示するには、このようなあなたの「壊れた」コードを書き換えることができます:

var firstTable = $("<table></table>").find("table").length; 

... .find()子孫要素のみを選択します。

var firstTable = $("table", "<div><table></table></div>").length; 
// returns 1 

検索が context引数内起こる:

+0

find()メソッドは問題ありませんが、eq(0)および:eq(1)セレクタ... –

+0

@Radek:あなたが何を意味するのか分かりません。 '.find()'は '$()'が行うすべてのセレクタで動作します。 –

関連する問題