htmlコード(常に0を返す)
var l1 = $('#table > tr').length;
var l2 = $('#table tr').length;
alert(l1+','+l2);
結果:最初の#table > tr
は0を得るのはなぜ
0,1
?
現在地からのライブデモを見ることができます:
htmlコード(常に0を返す)
var l1 = $('#table > tr').length;
var l2 = $('#table tr').length;
alert(l1+','+l2);
結果:最初の#table > tr
は0を得るのはなぜ
0,1
?
現在地からのライブデモを見ることができます:
<table>
の直接の子だけ<thead>
、<tbody>
、または<tfoot>
可能性があるのでhttp://jsfiddle.net/Freewind/PmsFQ/(または<colgroup>
または<caption>
が、それらの行が含まれていません)。
ブラウザのDOMは暗黙のうちに<tr>
の迷惑を<tbody>
にラップします。 (これをしないブラウザの場合は、代わりにjQueryが偽造します)
$('#table > tbody > tr')
と書く必要があります。
2番目の文は、HTML(およびHTML5)ではtrueですが、XHTMLではtrueです。 [これらの](http://stackoverflow.com/a/5568877/106224)2つの[回答](http://stackoverflow.com/a/7491956/106224)を参照してください。 – BoltClock
これは、ブラウザが<table>
と<tr>
の間に自動的に<tbody>
要素を挿入して、行がテーブルの直接の子ではなくなるためです。
*その他*の質問に行ってください。保証があれば、この質問のために閉じてください(この質問はより良い点で書かれています)。 –
@pst:完了。これは、「これは*以前の*質問と同じです」と近い記述が知っていることを常に私に少し不安にさせますが、このケースでは問題ないと思います。 – BoltClock