我想获取元素的第二个类,然后将一个类添加到具有该ID的元素中。在Chrome,Firefox等中,它可以完美运行,但在IE11中则不能。你知道为什么吗?请帮助我
for (var i = 0; i < $('#example .item').length; i++) {
var class_svg = document.getElementsByClassName("item")[i].className.split(' ')[1];
var $elem = document.getElementById(class_svg);
$elem.classList.add("show");
}
答案 0 :(得分:0)
根据the docs classList
仅在Edge之前得到部分支持。使用className
代替:
$elem.className += ' show';
编辑:感谢@Sterling Archer的提示
答案 1 :(得分:0)
使用SVG元素(我假设您已经基于示例代码创建了一个基本示例),然后在IE11和Edge中进行查看,您可以看到className
属性是[object SVGAnimatedString]
。这是SVG元素的一些特殊对象,而不是处理该特殊对象,而只需使用getAttribute
处理属性本身。以下是适用于大多数浏览器的代码:
for (var i = 0; i < $('#example .item').length; i++) {
var class_svg = document.getElementsByClassName("item")[i].getAttribute("class").split(' ')[1];
var $elem = document.getElementById(class_svg);
var classList = $elem.getAttribute("class");
classList += " show";
$elem.setAttribute("class",classList);
}
希望对您有用。