たとえば、次のような最小限のhtmlタグを含む非常に単純なテーブルがあります。
<table id="test">
<tr><td>some table cell</td></tr>
</table>
タグが存在するかどうかを確認しようとしています。奇妙なことに、jquery は、定義していないにもかかわらず、「はい、tbody タグがあります」と言います。ここで何が起きてるの?
$('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
});
jQuery 1.6.4を使用してChrome 28.0、Firefox 22.0でテスト済み(現在のプロジェクトでは必要ですが、jQuery 2.0.2でも発生します)
ここにも jsFiddle があります: http://jsfiddle.net/nerdess/rH5Lf/