重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

次の処理を行いたいのですが,どのようにすればいいのでしょうか。
1.document がクリックされたときに,どの要素がクリックされたかを調べる。
2.その要素がid="tbody1"のtbodyタグ内にある場合,次の操作を行う。
3.変数trにクリックされたテーブルの行を指定する。
4.変数tdContentに先程のtr内の第一列目のセルの内容を代入する。
trタグはJavaScriptで自動生成しているので,できれば上の手順でid属性を追加せずに済むようにしたいです,
極力処理を省いたつもりなので,よろしくお願いします。

A 回答 (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;
    • good
    • 0
この回答へのお礼

次のようにした結果うまくいきました。本当にありがとうございます。

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;
}
}
};

お礼日時:2006/05/20 18:15

老婆心ながら


>e = event;
といきなり代入しちゃったら意味がないので、
調べてから代入するようにした方がいいですよ。
    • good
    • 0
この回答へのお礼

window.onloaad の外で e を宣言するようにしました。ありがとうございます。

お礼日時:2006/05/21 17:52

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