2016-12-08 5 views
3

jqueryのメソッドchildrenの動作を理解できません。jqueryを使用してhtmlテーブル内の子供の数を取得する方法

var abc = $("div").children("p"); 
    alert(abc.length); 

しかし、同じことを0(ゼロ)のカウントに<table>結果内<tr>に適用された場合:私は使用して<div><p>の数をカウントすることができています。

var abc = $("table").children("tr"); 
    alert(abc.length); 

なぜですか?

+2

あなたは「」を忘れました。 '$( 'table> tbody')を使用してくださいchildren( 'tr')。length;' – Tushar

+0

あなたのHTMLはどこですか? – PHPglue

+0

@ Tusharに感謝して、あなたのソリューションは機能しました。しかし、私はなぜそうであるかを知りたい。私はテーブル要素にtbodyを含めていません。なぜ私は子供を得るためにこれを使うべきですか? – JPG

答えて

2

あなたはここでしかtr

tbody
$("table tbody tr").length; 
+0

OPは直接の子のみを必要とします。 'children()'または '>'セレクタを使います。 – Tushar

0

を取得したい場合は、この

$("table tr").length; 

を試してみては、あなたの答えです。

alert($("table tr").length); 
0

すべての行を選択して長さを取るセレクタを使用します。 <table>ではなく、壮大な子(すなわち、childrenchildren)の

var tableRowCount = $('table tr').length; 

また、すべてのネストされたテーブルのすべてのTRS

1

children()は、直接の子を返します取得カウントのために使用されるこのアプローチ(単一レベルを横断) 。

要素の子孫を検索する場合は、find()を使用してください。ある場合は入れ子になったテーブル

var trs = $('table').find('tr'); 

そして、カウント数/長さを得るために

alert($('table').find('tr').length); 


:ここ

あなたは<table><tr>を得ることができる方法、その後ではありませんネストしたテーブルがない場合、

alert($('table').find('tr').length); 

または

alert($('table tr').length); 

はあなたに適切な結果が得られます。


ネストした表
あなたには、いくつかのネストされたテーブルが<table><table>、すなわち持っている場合は、上記のコード

はあなたが親<table><tr>のが必要な場合は、あなたに正しい結果が得られますが、ないではないだろう子供の<table>。ここで

は、あなたがそれを得ることができる方法その後、次のとおりです。

alert($('table>tbody>tr').length); 

または

alert($('table').children('tbody').children('tr').length); 

はそれがお役に立てば幸いです。

関連する問題