私はこのようなテーブル構造を持っています:
_<table1>
<tbody>
<tr>
<td></td>
...
<td>
<table2>
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
_
JavaScriptでは、$(table1)
の値を持つ変数tbl
があり、_<tbody>
_の_table1
_のすべての直接の子要素(tr)を取得したいです。私のコードは次のとおりです。
_$('tr', tb1)
_
どうやら、table1とtable2のすべての_<tr>
_要素を返します。私は得ることができると思う
_$('tr', tb1).not(function(){return $(this).parent().parent()[0] != tb1;})
_
またはこの種のロジック。
$('table1 > tbody > tr')
が直接の子tr
を取得できることを知っています。残念ながら、これは使用できません。
誰もこれについて良い考えを持っていますか?
ありがとう。
find()
を使用できます。
tbl.find("> tbody > tr")
@ jave.webがコメントで言及したように
要素の直接の子を検索するには、.children()
を使用します。直接の子のみを検索し、それ以上深くは探索しません。 http://api.jquery.com/children/
これがまさに、テーブルのネストに注意する必要がある理由です。ページレイアウトではなく、データに使用することを本当に望みます。
おそらくあなたの日を台無しにする別の問題は、ネストしたテーブルでCSSセレクターを使用することです...あなたは基本的に同じ問題を抱えています-あなたは内側のテーブルの内側の要素も選択しないと外側のテーブルのTR要素を選択することはできません(IE6では実装されていないため、子セレクターは使用できません)
これは動作するはずです:
$("#table1 > tbody > tr")
ただし、TBODY要素をハードコードすることをお勧めします。ブラウザに依存して作成しないでください。
http://api.jquery.com/child-selector/
$('tb1 > tr')