- 締切済み
tableにまとめて関数
いつもお世話になっております。 今回はtableについてお聞きしたいです。 現在tableの各セルに同じ関数を適用するために以下のようにしています。 <table> <TR> <TD onclick="hoge();"></TD> <TD onclick="hoge();"></TD> ... <TD onclick="hoge();"></TD> </TR> </table> これを一つのtableすべてのTDについて行っているのですがファイルサイズを削りたいということになったので何とかまとめたいと思ったのですがうまい方法がわかりませんでした。 もし方法があるのでしたらご教授をお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
では、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>
<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>
- yambejp
- ベストアンサー率51% (3827/7415)
<table onclick="hoge();"> じゃだめなの?
補足
ご回答ありがとうございます。 それもやって見ましたが、それだとどのセルをクリックしたかわからず、関数の中でセルの座標を使いたかったのであきらめました。