我想使用下面的属性制作li
元素,但它根本不起作用。你能帮我解决问题吗?
var array = [1, 2, 3, "mm", "b", "c", "mm", "y", "mm"];
var list = document.getElementById("list");
function addText(array) {
for (var i = 0; i <= array.length; i++); {
var text = array[i];
if (array[i] == "mm") {
var listItem = document.createElement("LI");
listItem.innerHTML = text;
list.appendChild(listItem);
}
}
};
答案 0 :(得分:4)
for循环结束时的分号是问题所在。
for (var i = 0; i <= array.length; i++); // <-- remove this
分号使循环对array.length + 1次无效,而不是循环括号之间的代码。您还想将<=
更改为<
,以免超出数组边界。数组基于零,因此您的9个项目的数组具有0-8的索引。你也可以只比较text
,因为你将它复制到一个变量(不知道你的意图是什么,因为你可以彻底摆脱暂时的直接)。
另外,由于您只是添加了文字,因此textContent
使用innerHTML
演示:
var array = [1, 2, 3, "mm", "b", "c", "mm", "y", "mm"];
var list = document.getElementById("list");
function addText(array) {
for (var i = 0; i < array.length; i++) {
var text = array[i];
if (text == "mm") {
var listItem = document.createElement("LI");
listItem.textContent = text;
list.appendChild(listItem);
}
}
}
addText(array);
&#13;
<ul id="list">
</ul>
&#13;
答案 1 :(得分:0)
至少有两个原因导致您的代码无效。
for 循环除了增加var i之外没有做太多其他事情。你应该在for循环后删除分号。将其更改为:
for (var i = 0; i <= array.length; i++) {
你什么时候打电话给你的javascript?如果您在定义ID为&#34; list&#34;的元素之前运行 document.getElementById 然后 document.getElementById(&#34; list&#34;)将返回 undefined 。
一种解决方案是在身体末端定义脚本,例如:
<body>
<ul id="list">
</ul>
<script type="text/javascript">
var array = [1, 2, 3, "mm", "b", "c", "mm", "y", "mm"];
function addText(array) {
var list = document.getElementById("list");
for (var i = 0; i <= array.length; i++) {
var text = array[i];
if (array[i] == "mm") {
var listItem = document.createElement("LI");
listItem.innerHTML = text;
list.appendChild(listItem);
}
}
};
window.onload = function(){ addText(array) };
</script>
</body>
答案 2 :(得分:0)
var array = [1, 2, 3, "mm", "b", "c", "mm", "y", "mm"];
var list = document.getElementById("list");
function addText(array) {
array.map(function(element) {
if(element === 'm'){
var listItem = document.createElement('LI');
listItem.textContent = element;
list.appendChild(listItem);
}
});
}
addText(array);
<ul id="list">
</ul>
答案 3 :(得分:-1)
列表元素的类型是什么。它应该是一个“ul”元素,以实现你所需要的。