Hatena::ブログ(Diary)

すたら日記

2009年01月03日

【jQuery】 tableにtrをappendすると、自動的にtbodyが追加される

$hoge = $('<table></table>');
$hoge.append('<tr></tr>');

と設定して、

$table.children('tr')

でtrにアクセスできないのはなぜだろうと思っていたら、

自動的にtbodyが追加されてたんですね。

<table>
    <tbody>
        <tr></tr>
    </tbody>
</table>

こうなっていた、と。

道理で、範囲が直下の子要素までの『children()』では

アクセスできなかったわけです。


自動的にtbodyが追加されるのは、IEへの対策だそうです。

『IE6ではテーブル要素の動的生成時にtbodyを生成しないとだめみたい』

http://docolog.cocolog-nifty.com/papalog/2007/11/ie6tbody_f14c.html


そもそも、tableの直下にtrを入れずに、thead,tbodyを置くのが正式な

HTMLの書き方のようですね。これからは気をつけます…。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。