例如,我创建了一个div
元素列表,我想为此列表的第1,第3和第4个元素设置class name
。有可能吗?
我尝试使用setAttribute
但却什么都没有。
我做错了什么?
var newsListData = [
{
"title" : "title",
},
{
"title" : "title",
},
{
"title" : "title",
},
{
"title" : "title",
}
]
window.onload=function(index){
var divList;
for (var i = 0; i < newsListData.length; i++){
divList = document.createElement("div");
divList.innerHTML = newsListData[i].title;
document.getElementsByClassName("list")[0].appendChild(divList);
divList[0].setAttribute("class", "sample"); // stuck here
}
}
.sample {
color : red;
}
<div class="list">
</div>
答案 0 :(得分:2)
您正在使用divList
,就好像它不是数组一样。
divList[0].setAttribute("class", "sample"); // stuck here
您应该使用divList.setAttribute(...)
。这是固定的:
var newsListData = [
{"title" : "title",},
{"title" : "title",},
{"title" : 'title',},
{"title" : 'title',}
];
window.onload=function(index){
var divList;
for (var i = 0; i < newsListData.length; i++){
divList = document.createElement("div");
divList.innerHTML = newsListData[i].title;
document.getElementsByClassName("list")[0].appendChild(divList);
if(i !== 1 ){
divList.setAttribute("class", "sample"); // fixed
}
}
}
&#13;
.sample {
color : red;
}
&#13;
<div class="list">
</div>
&#13;
答案 1 :(得分:1)
使用className属性而不是divList.className = 'sample'
答案 2 :(得分:1)
这是你要找的吗?
window.onload=function(index){
var divList;
for (var i = 0; i < newsListData.length; i++){
divList = document.createElement("div");
divList.innerHTML = newsListData[i].title;
document.getElementsByClassName("list")[0].appendChild(divList);
divList.setAttribute("class", "sample"); // stuck here
}
var second = document.getElementsByClassName('sample')[1];
second.setAttribute("class", "");
}