【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

いつもお世話になっております。
今回はtableについてお聞きしたいです。

現在tableの各セルに同じ関数を適用するために以下のようにしています。

<table>
<TR>
<TD onclick="hoge();"></TD>
<TD onclick="hoge();"></TD>
...
<TD onclick="hoge();"></TD>
</TR>
</table>

これを一つのtableすべてのTDについて行っているのですがファイルサイズを削りたいということになったので何とかまとめたいと思ったのですがうまい方法がわかりませんでした。
もし方法があるのでしたらご教授をお願いします。

A 回答 (3件)

<table onclick="hoge();">


じゃだめなの?

この回答への補足

ご回答ありがとうございます。
それもやって見ましたが、それだとどのセルをクリックしたかわからず、関数の中でセルの座標を使いたかったのであきらめました。

補足日時:2008/11/14 07:54
    • good
    • 0

<html>


<table border="1"><tr><td>a</td><td>b</td><td>d</td><td>e</td><td>f</td><td>g</td></tr></table>
<script>
var mae;
document.body.onclick = function(e){
var o = /*@cc_on @if(1) event.srcElement @else@*/ e.target /*@end@*/;
if(o.tagName!='TD') return;
x=o.cellIndex;
y=parentSearch(o,'TR').sectionRowIndex;
alert('x='+x+"/y="+y+"/ Text="+o.innerHTML);

}
function parentSearch(o,t){while(o.tagName!=t)o=o.parentNode;return o;}

</script>
    • good
    • 0

では、idでテーブルを指定して、すべてのタグにメソッドを設定


すればよいでしょう

<script>
window.onload=function(){
var tags=document.getElementById("t0").getElementsByTagName("td");
for(var i=0;i<tags.length;i++){
tags[i].onclick=function(){
alert(this.innerHTML);
}
}
}
</script>

<table border id="t0">
<TR>
<TD>11</TD>
<TD>12</TD>
<TD>13</TD>
</TR>
<TR>
<TD>21</TD>
<TD>22</TD>
<TD>23</TD>
</TR>
<TR>
<TD>31</TD>
<TD>32</TD>
<TD>33</TD>
</TR>
</table>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!