如何为创建的div设置类名

时间:2016-04-26 21:19:32

标签: javascript html css

例如,我创建了一个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>            

3 个答案:

答案 0 :(得分:2)

您正在使用divList,就好像它不是数组一样。

divList[0].setAttribute("class", "sample"); // stuck here

您应该使用divList.setAttribute(...)。这是固定的:

&#13;
&#13;
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;
&#13;
&#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", "");
}