gpt4 book ai didi

javascript - 如何在没有 jQuery 的情况下隐藏和显示数组元素

转载 作者:行者123 更新时间:2023-11-28 15:13:31 25 4
gpt4 key购买 nike

所以我有一个数组,我希望能够通过使用 vanilla JavaScript 单击它来隐藏和显示数组的每个元素。虽然我对如何在这种情况下使用 getElementById 感到有点困惑,因为它是一个数组...

HTML:

<html>
<head>
<script src="js/sender.js"></script>
<link href="css/style.css" rel="style" media="screen">
<script>
</script>
</head>

<body>
<div class="sub" id="main">
</div>
<ol id="list"></ol>
</div>
</body>
</html>

JavaScript:

var sender:[bob, sally, syke, lucy, larry,];
for(var i =0; i<sender.length; i++){
var liBody = document.createElement("li");
liBody.IdName = "main";
liBody.innerHTML = sender[i];
document.body.appendChild(liBody);

最佳答案

听起来您正试图在列表中显示每个数组项,并在单击时切换数组项的可见性。如果我没有正确理解您的问题,可以采用以下一种方法:

var sender = ["bob", "sally", "syke", "lucy", "larry"];
var myList = document.getElementById('list');

for (var i = 0; i < sender.length; i++) {
var liBody = document.createElement("li");
var spanWrapper = document.createElement("span"); //wrapper to handle the clicks
spanWrapper.style.display = "block";
liBody.IdName = "main";
liBody.innerText = sender[i]; //pulling value from sender array
liBody.style.visibility = "visible";
spanWrapper.addEventListener('click', function() { //add click handler
if (this.childNodes[0].style.visibility == "visible") {
this.childNodes[0].style.visibility = "hidden"; //hide item
} else {
this.childNodes[0].style.visibility = "visible"; //show item
}
});
spanWrapper.appendChild(liBody); //add list item to its span wrapper
myList.appendChild(spanWrapper); //add span wrapper to the list
}
<div class="sub" id="main">
<ul id="list"></ul>
</div>

此代码循环遍历您的 sender数组并将每个数组元素分配给一个 <li> .每个<li>被放置在 <span> 中用于处理任何点击并将元素切换为可见或隐藏。

单击每个列表项(从您的 sender 数组填充)将隐藏该元素(如果它当前可见)或显示它(如果它当前隐藏)。

除非<li>IdName属性还有另一个在这里没有看到的用途,您可以从代码中删除这一行:

liBody.IdName = "main";

你还有一个额外的 </div>标签不应存在,除非数组中的名称实际上是变量,否则数组声明应如下所示:

var sender = ["bob", "sally", "syke", "lucy", "larry"];

而不是这个:

var sender:[bob, sally, syke, lucy, larry,];

关于javascript - 如何在没有 jQuery 的情况下隐藏和显示数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47023240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com