html kodunu (her zaman 0 döndürür)
var l1 = $('#table > tr').length;
var l2 = $('#table tr').length;
alert(l1+','+l2);
sonucu: İlk #table > tr
0 olsun Neden
0,1
?
Buradan bir canlı demo görebilirsiniz:
html kodunu (her zaman 0 döndürür)
var l1 = $('#table > tr').length;
var l2 = $('#table tr').length;
alert(l1+','+l2);
sonucu: İlk #table > tr
0 olsun Neden
0,1
?
Buradan bir canlı demo görebilirsiniz:
bir <table>
doğrudan çocuklar sadece <thead>
, <tbody>
veya <tfoot>
olabileceğinden http://jsfiddle.net/Freewind/PmsFQ/ (veya <colgroup>
veya <caption>
, ancak bu satırları içermezler).
Tarayıcının DOM'si, <tbody>
numaralı telefondan <tr>
s yolunu örtülü olarak sarmaya devam edecektir. (bunu yapmayan tarayıcılar için, jQuery bunu yerine getirir)
$('#table > tbody > tr')
yazmanız gerekir.
İkinci cümle, HTML (HTML5'in yanı sıra) için doğrudur, ancak XHTML için geçerli değildir. Bunlara bakın [http://stackoverflow.com/a/5568877/106224] iki [cevap] (http://stackoverflow.com/a/7491956/106224). – BoltClock
Bunun nedeni, tarayıcıların artıkve <tr>
arasındaki <tbody>
öğeyi otomatik olarak eklemesidir, böylece satırlar artık tablonuzun doğrudan çocukları değildir.
Tarayıcınız tbody
öğeye ekliyor dolayısıyla tr
tablonun alt öğesi değil.
Lütfen * diğer * sorusuna gidip, bunun garanti edilmesi için bunu kapatın (bu soru daha iyi ve daha çok noktaya yazılır). –
@pst: Bitti. Bu, "bu daha önceki * soruların aynısıdır" diyerek, yakın anlatmanın bilindiğini bilerek beni her zaman biraz rahatsız ediyor, ama bence bu durum iyi. – BoltClock