0

Forループを使用して配列を実行し、関連する文字列を返します。getElementByIdを使用すると、最後の文字列のみが取得されますが、document.writeを使用すると、すべてが正常に実行されます。

var names = ["John","Jamie","Jessica","Judy","Jeffery","Joy"];
for (i=0,tot=names.length; i < tot; i++) {
 document.getElementById("namelist").innerHTML = names[i];
}

HTMLは <p id="namelist">list of names go here</p>

私が走ったときに得られるのは「ジョイ」です。この場合、getElementByIdを使用することはできませんか?1つの要素内に返されたリストを取得する他の方法はありますか?

私はここで他のいくつかの質問と回答を読みましたが、どれも私が望んでいるものではありません

ありがとう!

4

5 に答える 5

2

ループで値を設定しています。

まず、ジョンに設定します。次に、それをJamieに設定します(つまり、Johnではなくなります)など。

値を追加する場合は、次のようなことを行う必要があります。

document.getElementById("namelist").innerHTML = document.getElementById("namelist").innerHTML + names[i];

+=演算子の使用は短くなります)

ロット全体をドロップしたいだけの場合は、ループを使用する必要はありません。

document.getElementById("namelist").innerHTML = names.join(' ');
于 2012-05-15T06:13:05.763 に答える
0
var names = ["John","Jamie","Jessica","Judy","Jeffery","Joy"];
for (i=0,tot=names.length; i < tot; i++) {
 document.getElementById("namelist").innerHTML += names[i];
}

+=の代わりに=

于 2012-05-15T06:15:10.850 に答える
0

すべての名前を出力する場合は、要素のinnerHTMLにすべての名前を追加する必要があります。

var names = ["John","Jamie","Jessica","Judy","Jeffery","Joy"];
for (i=0,tot=names.length; i < tot; i++) {
 document.getElementById("namelist").innerHTML += names[i]+"<br/>" ;
}
于 2012-05-15T06:16:24.877 に答える
0
document.getElementById("namelist").innerHTML += names[i] + "<br/>" 

おそらくあなたが望むものです

私が使用する演算子は+=どこにあります

a += b;

と同じです

a = a + b;

より簡単な方法は

var names = ["John","Jamie","Jessica","Judy","Jeffery","Joy"];
document.getElementById("namelist").innerHTML = names[i].join(", ");
于 2012-05-15T06:16:50.210 に答える
0

クイックライトアップreplace=with + =

var names = ["John","Jamie","Jessica","Judy","Jeffery","Joy"];
for (i=0,tot=names.length; i < tot; i++) {
 document.getElementById("namelist").innerHTML += names[i];
}
于 2012-05-15T06:18:56.200 に答える