gpt4 book ai didi

javascript - 使用 javascript 在 IE8 和其他浏览器中获取主体类的标准解决方案是什么

转载 作者:行者123 更新时间:2023-11-28 00:30:38 25 4
gpt4 key购买 nike

我需要在 Internet Explorer 8 及更低版本上获取主体类,我正在使用 javascript classList 方法,但它似乎不适用于旧的 IE 浏览器( http://caniuse.com/#search=classList ),是否有适用于新浏览器的标准解决方案最老的一个?

var b = document.body;
// check body class
if (!b.classList.contains('ie-8')) {
b.classList.add('ie-block');
// removing DOM main container
b.removeChild('mainContainer');
}

感谢帮助。

最佳答案

您可以使用标准.className属性,其中包含以空格分隔的类列表。

您的代码中还有一个错误:行 b.removeChild('mainContainer');错误的是:removeChild方法需要 Element作为参数,并且您给它一个字符串。您应该首先获取该元素(我认为是带有 id="mainContainer" 的元素,然后正确删除它

如上所述,您可以检查正文是否为 className包含所需的类并相应地表现,这是一个工作示例:

var b = document.body;

if (~(" "+b.className+" ").indexOf(" ie-8 ")) {
b.className += " ie-block";
b.removeChild(document.getElementById("mainContainer"));
}

附加说明:

  • 我将这些空格添加到 className因为类名通常不以空格开头/结尾,但它们用空格分隔类,因此您需要检查 " ie-8 " (带有前导空格),因为在没有空格的情况下匹配它可能会导致错误的识别(例如像 "some-ie-8-thing" 这样的类会匹配)。
  • 我正在使用~(...).indexOf因为~运算符将返回 0 (即 false )仅当 indexOf 返回的数字时是 -1 ,这意味着仅当字符串包含给定的子字符串时,表达式才会计算为 true。
  • 我还在 " ie-block" 的开头添加了一个空格因为类之间用空格分隔。

关于javascript - 使用 javascript 在 IE8 和其他浏览器中获取主体类的标准解决方案是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29030739/

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