【发布时间】:2019-11-21 16:26:08
【问题描述】:
我正在尝试使用 JavaScript 函数制作一个在 HTML 页面上呈现的列表。我知道我可以使用DOM.createElement("LI"),但我希望列表中的每个项目都具有不同的属性,以便在单击列表的那部分时,它会重新迭代函数。
这是我当前的 HTML(我以 5 的参数为例,我真的有一个可能的数字集合):
<!DOCTYPE html>
<html>
<body>
<p id="count" onclick="makeAList(5)">Click me too!</p>
<script>
function makeAList(num){
var itemList = [];
for (i = 0; i < num; i ++){
itemList.push(i);
itemList.forEach(document.setAttribute("onclick", makeAList(i)) = i);
}
document.getElementById("count").innerHTML = itemList;
}
</script>
</body>
</html>
单击初始页面时,我无法生成任何内容。我应该如何解决这个问题?我想要它,当我点击Click me too! 时,它会生成0,1,2,3,4,然后如果我点击3,它会呈现0,1,2。
【问题讨论】:
-
您有多个拼写错误和无效的 JS。调试你得到的错误,你会自己解决这个问题。
-
您可以通过指定
onclick属性来设置点击监听器(例如element.onclick=...或addEventListener:element.addEventListener('click',...)比使用 setAttribute 干净得多,而且看起来不像您在设置无论如何它都是一个有效的函数 -
最终目标是什么,你想从
Click me too!开始->用户点击->它显示0,1,2->用户点击1(例如)->你现在显示0,1,2,2-> 用户点击0-> 你现在显示0,1,2,1,2,2等等? -
我有一个答案,但我也对最终目标感到困惑,不想发布它。根据您想要实现的目标,我可以相应地调整答案。此外,如果每次您没有真正添加任何内容时迭代仅 3 次,它可能只是替换一些值。我想你可能想要
document.getElementById("count").innerHTML += itemList -
感谢 cmets,我对此很陌生,我使用的编辑器没有指出 JS 中的错误。对于最终产品,我想点击
Click me too!--shows0,1,2--click 1--show--0,1,所以每次点击只返回该点击的结果。我将编辑该函数以尝试使其有效,因为我发现我缺少一个要引入的参数。
标签: javascript html arrays list onclick