Javascript 将类添加到元素

Javascript 将类添加到元素,javascript,Javascript,我试着编写这些代码,通过CSS(jsbin)生成网格视图 var tables=document.getElementsByClassName('tableData'); var rows=表[0]。getElementsByTagName('tr'); 对于(var i=1;i请尝试行[i]。className+=“alt”即使属性还不存在,也应该可以这样做: rows[i].setAttribute("class", "alt"); 您可能需要使用Javascript框架。事实证明,Fir

我试着编写这些代码,通过CSS(jsbin)生成网格视图

var tables=document.getElementsByClassName('tableData');
var rows=表[0]。getElementsByTagName('tr');

对于(var i=1;i请尝试
行[i]。className+=“alt”

即使属性还不存在,也应该可以这样做:

rows[i].setAttribute("class", "alt");

您可能需要使用Javascript框架。事实证明,Firefox和Internet Explorer都有不同的方法来添加类名

对于Firefox,我相信你必须这么做

element.setAttribute('class','<className>');
它处理了所有浏览器的模糊性。还有用于管理和测试类属性的和函数

因此,在您的场景中,您将执行以下操作:

var tables = document.getElementsByClassName('tableData');
var rows = tables[0].getElementsByTagName('tr');
for(var i=1; i<rows.length; i +=2) {
    // alert(rows[i]);
    $(rows[i]).addClass("alt");
}
var tables=document.getElementsByClassName('tableData');
var rows=表[0]。getElementsByTagName('tr');

对于(var i=1;i这将仅在类名不存在时添加类名

var classToAdd = 'alt';
if (rows.className.length == 0)
{
  rows.className = classToAdd;
}
else if (rows.className.indexOf(classToAdd) < 0)
{
  rows.className += ' ' + classToAdd;
}
var classToAdd='alt';
if(rows.className.length==0)
{
rows.className=classToAdd;
}
else if(rows.className.indexOf(classToAdd)<0)
{
rows.className+=''classToAdd;
}
两年后(2012/06),出现了一种新的闪亮方法-使用方法
添加()
删除()
切换()
包含()

支持

  • 铬8+
  • 火狐3.6+
  • Internet Explorer 10+
  • 歌剧11.50+
  • 狩猎5.1+

我们中的一个人误解了这个问题。我相信是你。@SLaks:我认为你们在不同方面都有点错误。特米克,我认为应该是
rows[I].setAttribute(“class”,rows[I].getAttribute(“class”)+“alt”);
@voyager:是的,我想我同意。你给出的代码片段可能只是一张罚单。方法setAttribute也可以在IE中使用。它是标准的,不是特定于Firefox的。而且,className是Firefox支持的,不仅仅是IE。@Joseph注意到你的第一条评论,没有建议特定的Javascript框架。我最后展示了一个ex对于jQuery来说足够了,因为我认为答案会从一个这样的例子中受益。你认为最好显示来自多个框架的例子,还是保持原样更好?@cmptrgeekken:我会保持原样。添加另一个框架例子只会让你的答案变得更长,而不会获得任何真正的信息,a大多数框架都有非常相似的方法。是的,jQuery真的很棒。但我想先学习基本知识,所以:p谢谢你的评论:)
$(element).addClass('<className>');
var tables = document.getElementsByClassName('tableData');
var rows = tables[0].getElementsByTagName('tr');
for(var i=1; i<rows.length; i +=2) {
    // alert(rows[i]);
    $(rows[i]).addClass("alt");
}
var classToAdd = 'alt';
if (rows.className.length == 0)
{
  rows.className = classToAdd;
}
else if (rows.className.indexOf(classToAdd) < 0)
{
  rows.className += ' ' + classToAdd;
}
rows[i].classList.add("alt");