如何使用for循环循环遍历元素列表并动态设置元素样式

how to use for loop to cycle through lists of elements and set an elements style dynamically?

本文关键字:循环 元素 动态 设置 样式 列表 何使用 遍历 for      更新时间:2023-09-26

我已经实现了一个for循环,在单击一个时高亮显示颜色小部件选项,但我只想高亮显示被单击的那一个,其余的没有任何边框高亮显示。我该如何在对下面的代码稍作修改的情况下完成这项工作?必须实现for循环和纯javascript。

<html>
<head>
<meta charset="utf8" />
<title></title>
<script>
function changeColor(e) {
document.getElementById("page").className = e;
var i;
var x = document.getElementById("page");
for (i = 0; i < 5; i++)

if (document.getElementById("page").className = e ){
x.getElementsByTagName("li")[i].style.borderColor = "red";
}
}
</script>
</head>
<body>
<div id="page" class=""><!-- start page wrapper -->
<hr />
<div id="theme-picker">
<h2>Theme Picker</h2>
<p>Select a theme from the options below:</p>
<div id="palette">
<ul>
<li class="midnight" onClick="changeColor('midnight')">Midnight</li>
<li class="matrix" onclick="changeColor('matrix')">Matrix</li>
<li class="peardrop" onclick="changeColor('peardrop')">Peardrop</li>
<li class="skylight" onclick="changeColor('skylight')">Skylight</li>
<li class="sunset" onclick="changeColor('sunset')">Sunset</li>
</ul>
<div class="clearfix"></div>

<hr />

</div><!-- /page -->
</body>
</html>

将循环更改为:

var i;
var x = document.getElementById("palette");
var items = x.getElementsByTagName("li");
for (i = 0; i < items.length; i++){
    var item = items[i];
    item.style.borderColor = item.className == e ? "red" : "";
}