1

このステートメントは機能します。ノードをクリックすると、そのIDを表示するメッセージが表示されます。

 newnode.setAttribute("onClick", "alert(this.id)"); 

this.idの値を別の関数に渡す必要があり、それを回避するのに苦労しています。

試行1:

以下は機能しません。this.idを別の関数に渡すことができないことを理解しています。これは、テスト関数内の何にも関連しないため、同じことを行います。

newnode.setAttribute("onClick", "test(this.id)"); 

function test(f){
alert(f);
}

試行2:

var testvar = newnode.id;
newnode.setAttribute("onClick", "test(testvar)"); 

function test(f){
alert(f);
}

setAttribute行でtestvarが認識されないのはなぜですか?

4

1 に答える 1

3
newNode.onclick = function(){
  test(this.id);
};

function test(id){
  alert(id);
}

例: http: //jsfiddle.net/sHZeL/1/

于 2013-01-06T22:21:28.823 に答える