●やりたい事
1.Div要素(id=test") の子要素にDiv要素(id=test2")を追加
2.上記1で追加したDiv要素(id=test2")にSpan要素(値:a〜e、id:id-a〜id-e)追加
3.上記2で追加したspan要素にaddEventListenerにてclickイベント追加
4.Div要素(id=test2")に上記span要素を一覧表示
5,上記2.3.4をfor文にて繰り返す
6.表示span要素をクリックしalert表示
例:aボタンをクリックするとalertにてaを表示
:bボタンをクリックするとalertにてbを表示
●質問内容
Div要素(id=test2")に上記span要素は表示されますが、span要素をクリックしてもalert表示されません。
console.log(getSpanid)にてspan要素に"id"値と"value"値が追加されたことは確認出来たのですが、addEventListenerが追加されたか確認方法が分からず、質問させていただきました。
この場合どの様に修正すれば、上記6を実行することが出来るのでしょうか?
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width" /> </head> <body> <div id="test"></div> <script> const arry= ["a","b","c","d","e"]; displayText(); function displayText(){ let getDivid = document.getElementById("test"); //div要素作成 let createDiv = document.createElement("div"); let newDivid = "test2"; createDiv.setAttribute("id",newDivid); getDivid.appendChild(createDiv); let getNewDivid= document.getElementById(newDivid); //作成したdiv要素にspan要素を追加 for (let i = 0; i < arry.length; i++) { let createSpan = document.createElement("span"); let spanid= "id-" + i ; createSpan.setAttribute("id",spanid); createSpan.setAttribute("value","ボタン"); getNewDivid.appendChild(createSpan); //追加したspan要素にclickイベント追加 let getSpanid= document.getElementById(spanid); let btn= getSpanid.getAttribute("value"); getSpanid.addEventListener('click',function(){ alert(arry[i]); },false); console.log(getSpanid); //追加したspan要素一覧表示 getNewDivid.innerText += arry[i] + btn +"\n"; } } </script> </body> </html>
回答5件
あなたの回答
tips
プレビュー