我正在尝试更改整个文档中的列表项。我正在使用以下代码,但是我收到了一个错误。我做错了什么?
function changeListItems() {
var listItem = document.getElementsByTagName("ul");
var docItem = listItem.getElementsByTagName("li");
docItem.setAttribute("class", "list-group-item");
};
changeListItems();
答案 0 :(得分:5)
因为document.getElementsByTagName()
返回具有给定标记名称的元素的HTMLCollection。
你应该循环遍历每个元素并为其添加类。
对于Ex:
var docItem = listItem.getElementsByTagName("li");
for(var i=0; i< docItem.length; i++)
{
docItem[i].className = "list-group-item"
}
答案 1 :(得分:2)
getElementsByTagName
返回NodeList
,你必须迭代它。
由于您有两个级别的标记,因此您必须编写嵌套循环。但是使用querySelectorAll
一次获取所有列表项目更简单。
function changeListItems() {
var docItem = document.querySelectorAll("ul li");
for (var i = 0; i < docItem.length; i++) {
docItem[i].setAttribute("class", "list-group-item");
}
}