循环时更改数组中项目的样式不起作用

Changing the style of an item in an array when looping through isn't working

我正在尝试使用 for 循环更改列表的 borderColor,所以我使用了以下代码:

var listedItems = document.getElementsByTagName("UL");
for (var i = 0; i < listedItems.length; i++){
    listedItems[i].style.borderColor = "red";
}

谁能告诉我为什么这不起作用?

将 listedItems[i] 与 if 语句中的其他内容进行比较似乎可行,但更改数组当前指向的元素无效。我很困惑。

您的代码应该可以工作。

前提是所有边框样式都已设置。如果您还没有设置 borderWidth 和 borderStyle,您将看不到颜色 :)

var listedItems = document.getElementsByTagName("UL");
    for (var i = 0; i < listedItems.length; i++){
        listedItems[i].style.borderStyle = "solid";
        listedItems[i].style.borderWidth = "1px";
        listedItems[i].style.borderColor = "red";
    }
<ul>
  <li>test</li>
  <li>test</li>
  </ul>

<ul>
  <li>test2</li>
  <li>test2</li>
  </ul>

var listedItems = document.getElementsByTagName("UL");
for (var i = 0; i < listedItems.length; i++){
    listedItems[i].style.border = "1px solid red";
}