classList.contains('outputDiv')
,还有其他选择吗?
我的代码如下:
function toggleclass() {
var elems = document.getElementsByClassName("outputDivs");
for (var i = 0; i < elems.length; ++i) {
if (elems[i].classList.contains("outputDivsDesigned"))
elems[i].className = "outputDivs";
else
elems[i].className += " outputDivsDesigned";
}
}
感谢您的帮助。
答案 0 :(得分:3)
您可以尝试此https://github.com/eligrey/classList.js
或只使用className,并搜索返回的字符串。
答案 1 :(得分:1)
我刚刚写了这篇文章,也许它可能有用吗?
http://www.tjcafferkey.me/ie9-classname-containsclass-alternative/
它基本上解释了您可以使用的这个简单替代方案:
function containsClass(yourObj, yourClass) {
if(!yourObj || typeof yourClass !== 'string') {
return false;
} else if(yourObj.className && yourObj.className.trim().split(/\s+/gi).indexOf(yourClass) > -1) {
return true;
} else {
return false;
}
}
然后你将运行这样的函数
var isFeaturedPost = containsClass(obj, 'featured-post-class');
编辑:我已更新了检查yourObj存在的函数,并且yourClass是一个字符串。
答案 2 :(得分:0)
不确定它是否能够正常运行,因为没有经过测试可以为crossbrowser工作,你可以尝试: -
classList.indexOf("outputDivsDesigned") != -1
答案 3 :(得分:0)
如果您只需要.contains()
功能,请搜索className
内的子字符串,即elems[i].className.indexOf("outputDivsDesigned") > -1
。
所以你的功能看起来像这样:
function toggleclass() {
var elems = document.getElementsByClassName("outputDivs");
for (var i = 0; i < elems.length; ++i) {
if (elems[i].className.indexOf("outputDivsDesigned") > -1)
elems[i].className = "outputDivs";
else
elems[i].className += " outputDivsDesigned";
}
}