bに上書きしていますが、配列(btns)に保持して、
btns[1].value = labelArray[1]
で、どうですか。
二番目だからインデックスは1にしました。
▽2
●
a-kuma3 ベストアンサー |
もし、BUTTON タグが選択肢の英単語しかないなら、document.getElementsByTagName を使って BUTTON タグの要素を全て手に入れて、その2番目(インデックスは 1 )のボタンの文字を置き換える。
例えば、こんな感じ。
<script> // ボタンを表示する window.onload = function() { var labelArray = ["car" , "apple", "box", "dinner", "eagle", "fox"]; for ( var i = 0; i < 6; i++ ) { var b = document.createElement("button"); b.innerHTML = labelArray[i]; //6個のボタンを順番に表示させる document.body.appendChild(b); } }; // 2番目の apple を Google に置き換える function changeLabel() { var buttons = document.getElementsByTagName("button"); // 2番目 buttons[1].innerHTML = "Google"; } </script> <body> <a href="#" onclick="changeLabel()">2番目の apple を Google に置き換える</a> <p> </body>
innerHTML の代りに textContent を使っても、同じです。
もし、他にもボタンがあるなら ID を振っておいて document.getElementById でピンポイントに指定した方が良いでしょう。
<script> // ボタンを表示する window.onload = function() { var labelArray = ["car" , "apple", "box", "dinner", "eagle", "fox"]; for ( var i = 0; i < 6; i++ ) { var b = document.createElement("button"); // ★ ボタンに word_option_0 というような id をつけておく b.id = "word_option_" + i; b.innerHTML = labelArray[i]; //6個のボタンを順番に表示させる document.body.appendChild(b); } }; // 2番目の apple を Google に置き換える function changeLabel() { // 2番目のボタンの ID を指定して要素を取得する var button = document.getElementById("word_option_1"); button.innerHTML = "Google"; } </script> <body> <button onclick="changeLabel()">2番目の apple を Google に置き換える</button> <p> </body>