我制作了一个脚本来为表格着色。我的脚本仅适用于Internet Explorer 8或更高版本。如何制作我的脚本crossbrowser?
window.onload = (function()
{
"use strict";
var c = 0, i, j, t = document.getElementsByTagName("tbody"), r;
for(i = 0; i < t.length; i++)
{
r = t[i].getElementsByTagName("tr");
for(j = 0; j < r.length; j++)
{
if(c%2 === 1)
{
r[j].setAttribute("class", "colored");
}
c++;
}
c = 0;
}
});
答案 0 :(得分:3)
更改
r[j].setAttribute("class", "colorful");
到
r[j].className = "colorful";
IE有setAttribute
错误的历史记录,其中一个错误的方法与class
属性有关。 (在早期版本中,即使该属性被称为class
,他们也希望您使用className
来调用它setAttribute
,这完全是错误的。其他浏览器和更新的版本IE浏览器,做对了。)
幸运的是,class
属性可靠地反映在名为className
的元素上的属性(在所有浏览器中),因此您可以支持IE的{{1}通过转到反射属性来解决问题,如上所示。
(同样的事情发生在setAttribute
元素上的for
属性,FYI;请改用label
反射属性。)