人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptで、配列の英単語を順番にボタン形式で表示させています。
そこで、ボタンを表示させたあとで、ある単語のボタンのところを、別の文字で書き換えたいのですが書き換えるやり方がよくわかりません。
例えば、下記のコードで、labelArray[2] 2個めの配列を
他の文字に書き換えるにはどうしたらいいのでしょうか?
document.getElementById("IDコード").textContent =
↑のコードを使うのでしょうか?
具体的に教えて頂ければ幸いです。

下がコードです。
//順番に6個の選択肢を順番に表示させる
for ( var i = 0; i < 6; i++ ) {
var b = document.createElement("button");
b.innerHTML = labelArray[i]; //6個のボタンを順番に表示させる

●質問者: javelover
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● POGPI

bに上書きしていますが、配列(btns)に保持して、

btns[1].value = labelArray[1]

で、どうですか。
二番目だからインデックスは1にしました。


javeloverさんのコメント
ありがとうございます!

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>

javeloverさんのコメント
さっそくありがとうございます。document.getElementsByTagNameというのが使えるのですね。 b.id = "word_option_" + i; var button = document.getElementById("word_option_1"); この使い方も便利ですね。とても参考になります。ありがとうございます。m(__)m

javeloverさんのコメント
お世話になります。おかげ様で、だいぶ理解できてきました。 ボタンの文字を変更はできたのですが、ボタンの背景色を変えるやり方で難儀しております。 var button = document.getElementById("word_option_1"); button.innerHTML='<background: #0000FF>' 文字は、そのまま表示させて、そこの背景色はどのように変更するのでしょうか?

a-kuma3さんのコメント
ボタンの背景色は、こうやって変えます。 >|javascript| var button = document.getElementById("word_option_1"); button.innerHTML = "Google"; button.style.backgroundColor = "#0000ff"; // ★背景色を青にする ||<

javeloverさんのコメント
無事、成功しました。 innerHTMLのところばかり、いじっていて、ぜんぜんできませんでした。 button.styleでやるのですね。無事成功しました。本当にありがとうございました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ