类名称不能在IE 7,8和Chrome得到改变(Class Name not getting cha

2019-08-16 22:41发布

我想在onload事件改变两个元素的类名。

这里是我的相同的代码:

    var browserName=navigator.appName;
    var tfElem = document.getElementById("TTlExpct");
    var blTfElem = document.getElementById("BTLExpct");
    if (browserName=="Microsoft Internet Explorer")
    {
        tfElem.className ="pn-tf";
        blTfElem.className ="pn-tf active";
        }
    else
    {
        tfElem.setAttribute('class', 'pn-tf');
        blTfElem.setAttribute('class', 'pn-tf active');
        }

如果它不是IE,Mozilla中,这是工作的罚款,类名是越来越设置的其他块拍摄代码的照顾。

它不是在IE7和IE8工作

在Chrome中,它只能如果我再重新加载页面。

任何帮助将不胜感激 。

Answer 1:

目前在执行中的错误setAttribute在旧版本的IE。 在IE的新版本,如果你不使用触发标准模式DOCTYPE的这个bug可能会效仿。

更换:

foo.setAttribute('class', value);

附:

foo.className = value;

处处做到这一点。 不要试图做浏览器检测。 支持所有浏览器setAttribute('class', value)也支持foo.className = value

在你的问题中的代码应该写成:

var tfElem = document.getElementById("TTlExpct");
var blTfElem = document.getElementById("BTLExpct");
tfElem.className ="pn-tf";
blTfElem.className ="pn-tf active";


文章来源: Class Name not getting changed in IE 7, 8 and chrome