2016-11-17 15 views
1

ボタンをループ内で動的に作成しようとしています。ボタンのonclickは、ボタンのIDを取得したい。以下のコードは機能しません。誰でも助けてくれますか?あなたが最初にそれがDOMに追加されるように、ドキュメントに作成された要素を追加する必要があり、事前ボタンのオンクリックでIDを取得する

+0

ボタンをドキュメントに追加する必要があります。 – randominstanceOfLivingThing

+3

for(int i = 1; i <5; i ++) 'は有効なJavascriptコードですか?私は 'int'を意味します –

答えて

0

子供を追加する必要がありました。ここでintを使用することはできません。あなたは二つの問題に実行しているように見えますvar

for(var i=1;i<5;i++) 
 
    { 
 
    var btn = document.createElement("button"); 
 
    
 
    btn.innerText = ("button"+i); 
 
    btn.setAttribute("id", i); 
 
     document.body.appendChild(btn); // add this line 
 
    btn.onclick = function(){ 
 
    alert(this.id); 
 
    } 
 
    }

+0

そしてあなたはこれを関数で渡すことはできません – Mahi

+0

@ Mahi私は説明することができますか?なぜ私たちは関数でthisを渡すことができませんか? – sanvi4

+0

@ sanvi4あなたは上記の答えを受け入れるべきではありません。そうでなければ、誰が同じ問題を抱えているかを理解する上で問題になります。なぜなら、関数引数の 'this'は変数のようなものだからです。 'this'は可変になりません。それは 'var thisのようなものです。あなたはこれをすることはできません – Mahi

1

for(int i=1;i<5;i++) 
    { 
    var btn = document.createElement("button"); 
    btn.innerText = "button"+i; 
    btn.setAttribute("id", i); 
    btn.onclick = function(this){ 
    alert(this.id); 
    } 
    } 

感謝。このtutorialを読んでください。

for(var i=1;i<5;i++) 
{ 
    var btn = document.createElement("button"); 
    btn.innerText = "button"+i; 
    btn.setAttribute("id", i); 
    document.body.appendChild(btn); 
    btn.onclick = function(){ 
    alert(this.id); 

    } 
} 
-1
for(var i = 1; i < 5; i++) 
{ 
    var btn = document.createElement("button"); 
    btn.innerText = "button"+i; 
    btn.setAttribute("id", i); 
    btn.onclick = function(e) { 
     alert(this.id); 
    } 
} 
+1

ここにいくつかの説明があります。このコードサンプルは、問題のコードサンプルとほとんど同じであり、この解決策が問題をどのように修正するかは不明です。 –

0

を使用して:あなたはforループ

  1. は、ループ変数iを宣言するintを使用しています。あなたが作成したボタン要素はコード内に存在し、ボタンはドキュメント自体には追加されていません。一般に、新しい要素は、ページ上に既に存在する親要素(ほとんどのコンテンツがあるbody要素など)に追加する必要があります。

下記のJS Binを実際の例で確認してください。この例では、親要素としてid "btn-container"を持つ要素を指定しました。

JS Bin with working example.

+0

ありがとうSebastian sangervasi – sanvi4

+0

問題はありません。これを回答としてマークすることは可能ですか、それとも「保留する」ことでそれを防止できますか? –

関連する問題