- ベストアンサー
クリックされた行を取得したい
次の処理を行いたいのですが,どのようにすればいいのでしょうか。 1.document がクリックされたときに,どの要素がクリックされたかを調べる。 2.その要素がid="tbody1"のtbodyタグ内にある場合,次の操作を行う。 3.変数trにクリックされたテーブルの行を指定する。 4.変数tdContentに先程のtr内の第一列目のセルの内容を代入する。 trタグはJavaScriptで自動生成しているので,できれば上の手順でid属性を追加せずに済むようにしたいです, 極力処理を省いたつもりなので,よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
(1) window.onload=function(){ document.body.onclick=function(e){ if(!e){ e=event; e.target=event.srcElement; } alert(e.target.tagName);//クリックされた要素 }; }; (2) td=e.target // クリックされた要素 if(td.parentNode.parentNode.id == "tbody1"){ //tbody 内にある (3) tr=td.parentNode; //クリックされた行 (4) tdContent = tr.cells[0].innerHTML;
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
老婆心ながら >e = event; といきなり代入しちゃったら意味がないので、 調べてから代入するようにした方がいいですよ。
お礼
window.onloaad の外で e を宣言するようにしました。ありがとうございます。
お礼
次のようにした結果うまくいきました。本当にありがとうございます。 window.onload = function(e) { document.body.onclick = function(e) { e = event; if ("" != e) { e.target = event.srcElement; }; td = e.target if (td.parentNode.parentNode.id == "tbody1") { tr = td.parentNode; tr.style.backgroundColor = "black"; tr.style.color = "white"; tdContent = tr.cells[0].innerHTML; } } };