Javascript classList.contains(';outputDiv';)在IE 9及更早版本中不受支持,

Javascript classList.contains(';outputDiv';)在IE 9及更早版本中不受支持,,javascript,internet-explorer,contains,Javascript,Internet Explorer,Contains,classList.contains('outputDiv')在IE 9及更早版本中不受支持,是否有其他替代方案 我的代码如下: function toggleclass() { var elems = document.getElementsByClassName("outputDivs"); for (var i = 0; i < elems.length; ++i) { if (elems[i].classList.contains("outputD

classList.contains('outputDiv')
在IE 9及更早版本中不受支持,是否有其他替代方案

我的代码如下:

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";
    }
}
函数切换类(){
var elems=document.getElementsByClassName(“outputDivs”);
对于(变量i=0;i
谢谢你的帮助。

你可以试试这个

或者只需使用className,然后搜索返回的字符串。

您可以试试这个


或者只需使用className,并搜索返回的字符串。

不确定它是否会像未测试为crossbrowser工作一样工作。您可以尝试:-

  classList.indexOf("outputDivsDesigned") != -1

不确定它是否会像未测试的那样工作,您可以尝试:-

  classList.indexOf("outputDivsDesigned") != -1

如果您只需要
.contains()
功能,请搜索
类名
中的子字符串,即
元素[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";
    }
}
函数toggleclass(){
var elems=document.getElementsByClassName(“outputDivs”);
对于(变量i=0;i-1)
elems[i].className=“outputDivs”;
其他的
元素[i].className+=“outputDivsDesigned”;
}
}

如果您只需要
.contains()
功能,请搜索
类名
中的子字符串,即
元素[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";
    }
}
函数toggleclass(){
var elems=document.getElementsByClassName(“outputDivs”);
对于(变量i=0;i-1)
elems[i].className=“outputDivs”;
其他的
元素[i].className+=“outputDivsDesigned”;
}
}

我刚刚写了这篇文章,也许会有帮助

它基本上解释了您可以使用的这个简单的替代方案:

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是否是字符串。我刚刚写了这篇文章,也许会有帮助

它基本上解释了您可以使用的这个简单的替代方案:

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是否是字符串。

MDN上有一个适用于旧浏览器(下至IE8)的垫片-MDN上有一个适用于旧浏览器(下至IE8)的垫片-