続・JavaScript DOM table.rows、row.cells

Posted by dab | 2007年12月20日 木曜日 9:07:50 < コンピュータ >

だぶだぶノート » JavaScript DOM table.rows、row.cells

その後の調べにより、

table.rows.item(0).cells.item(0)

という書き方が出来るとわかったので早速試してみると、Firefox2.0、Opera9、Safari3で問題なさそう。
Safari1.0では、<th>と<td>が混在する行で、行の全てのセルを取れないらしい。
IE7では、item()未対応。
ただし、IE、Safariともに、rows[0].cells[0]という書き方は可能。

Safari1.0はXMLHttpRequest未対応なので、そろそろ除外しても良さそうだが、IE7が未対応は痛い。
結局rows、cellsという書き方では、ブラウザごとの分岐はさけられないようだ。

ちなみにIEでは、1列目にrowspan=”2″が指定されていると、getElementsByTagName(‘tr’)[0]で取得出来るのは、その2列分、もしくは取得不可になってしまう。

getElementsByTagName(‘td’)では<th><td>混在行で全セルを取得出来ないし、getElementsByTagName(‘*’)ではセルの中で<span>でも使っていればそれも取得してしまう。
でもまぁ、getElementsByTagName(‘*’)で取得して、nodeNameがthかtdかというのを判断しておくのが一番無難なような気がする。


2007/12/27 追記
その後の調べ2

TrackBack URI : http://home.wi-wi.jp/blog/wp-trackback.php?p=143

1件のコメント

  1. だぶだぶノート 2007年12月26日 水曜日 , 22:18:18

    続2・JavaScript DOM table.rows、r…

    JavaScript、th、td混在行の1行分の全セルをNodeListとして取得する

    (more…)

Leave a comment

:mrgreen: :neutral: :twisted: :shock: :smile: :???: :cool: :evil: :grin: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: