gpt4 book ai didi

javascript - 类名在 IE 7、8 和 chrome 中未更改

转载 作者:行者123 更新时间:2023-11-28 02:26:41 24 4
gpt4 key购买 nike

我试图在加载期间更改两个元素的类名。

这是我的代码:

    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,则 else block 会处理代码,在 mozilla 中,这工作正常,类名已设置。

它在 IE7 和 IE8 中不起作用

在 Chrome 中,仅当我再次重新加载页面时它才有效。

任何帮助将不胜感激。

最佳答案

旧版本 IE 中 setAttribute 的实现存在错误。在较新版本的 IE 中,如果您不使用触发标准模式的 Doctype,则可能会模拟该错误。

替换:

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";

关于javascript - 类名在 IE 7、8 和 chrome 中未更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14834045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com