我是Web编程的菜鸟。我正在尝试在JS
页面上打印HTML
数组的值。
JS
代码:(Full source code)
var contactListArray = [228471, 647317];
for (i = 0; i < contactListArray.length; i += 1) {
document.getElementById('moshtarak').innerHTML = 'list:' + "<br />" + contactListArray[i] + "<br />";
}
HTML
代码:(Full source code)
<legend id="moshtarak" align="left"></legend>
结果:
list:
647317
如您所见,当我使用innerHTML =
时,它只会给我一个结果,但是有两个值(228471
和647317
)。然后,根据this comment的通知,我测试了innerHTML +=
以获取所有两个结果,但这是它的结果:
var contactListArray = [228471, 647317, 454545];
for (i = 0; i < contactListArray.length; i += 1) {
document.getElementById('moshtarak').innerHTML += 'list:' + "<br />" + contactListArray[i] + "<br />";
}
<legend id="moshtarak" align="left"></legend>
list:
228471
list:
647317
list:
228471
list:
647317
A,看来所有过程都打印了两次。我需要的是一次打印所有数组值,例如:
list:
228471
list:
647317
我在这里有什么问题?任何想法?
提前感谢。
由于代码的可维护性和安全性(代码注入),请避免使用innerHTML。但是使用函数,函数使编程变得有趣...
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<script>
var contactListArray = ["a", "b", "c"];
function createContactList(contactListArray) {
if(!Array.isArray(contactListArray) || contactListArray.length == 0) {
throw new Error("contactListArray=" + contactListArray + " should be an array! And not empty!");
}
var wrap = document.createElement("div");
contactListArray.forEach(addItem);
function addItem(item) {
var contact = document.createElement("address");
contact.innerText = item;
wrap.appendChild(contact);
}
return wrap;
}
window.onload = main;
function main() {
var contacts = createContactList(contactListArray);
moshtarak.appendChild(contacts);
}
</script>
</head>
<body>
<div id="moshtarak"></div>
</body>
</html>