Mam bardzo prostą tabelę z minimum znaczników html, np .:
<table id="test">
<tr><td>some table cell</td></tr>
</table>
Próbuję sprawdzić, czy tag jest obecny. dziwną rzeczą jest to, że jquery mówi „tak, jest tag tbody”, chociaż go nie zdefiniowałem! co tu się dzieje?
$("table#test").each(function(){
var tbody = $(this).find("tbody");
//how can there be a tbody when there is no <tbody> tag defined?
console.log(tbody.length); //gives 1, should be 0 though as there is no tbody
});
przetestowane w Chrome 28.0, Firefox 22.0 przy użyciu jQuery 1.6.4 (jak wymaga tego obecny projekt, ale dzieje się tak również w jQuery 2.0.2)
tutaj jest także jsFiddle: http://jsfiddle.net/nerdess/rH5Lf/
Odpowiedzi:
7 dla odpowiedzi № 1tbody dodaje automatycznie w tabeli, widać, że jest tam tbody, klikając prawym przyciskiem myszy i wyświetlając komponent (narzędzia programistyczne dla chromu)
<table id="test">
<tbody>
<tr>
<td>some table cell</td>
</tr>
</tbody>
</table>
3 dla odpowiedzi № 2
The tbody
element jest wymagany, aby dokument był ważny,dlatego większość przeglądarek doda ją, jeśli jej brakuje. Jeśli przejrzysz dokument za pomocą Firebug lub narzędzi dev dev, zobaczysz go w renderowanym źródle.
Jeśli możesz edytować swoje pytanie z większą szczegółowością tego, co próbujesz osiągnąć, możemy zasugerować alternatywne metody.
1 dla odpowiedzi nr 3
The tbody
elementy identyfikują zakres grup wierszy. Jeśli w tabeli nie ma elementu tbody, to zbiór tr
elementy traktowane jako pojedyncza grupa i tak opakowane pod singiel tbody
element w reprezentacji elementu Dom jquery. Dlatego widzisz tbody
liczyć jako 1.
1 dla odpowiedzi nr 4
Standard mówi:
TABELA nie może zawierać TRbezpośrednio, muszą być zawarte w THEAD, TFOOT lub TBODY. Jednak dla uproszczenia i wstecznej kompatybilności znacznik początkowy TBODY może zostać pominięty „gdy tabela zawiera tylko jeden obiekt tabeli i nie ma sekcji stołu lub stóp”; w takim przypadku element jest wywnioskowany przez przeglądarkę.
Sprawdź tutaj, zobaczysz, że tbody jest jakoś wymagane: http://www.w3.org/TR/html4/sgml/dtd.html
(CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>