简体   繁体   English

IE9及更早版本中不支持classList.contains('outputDiv'),

[英]classList.contains('outputDiv') not supported in IE 9 and older,

classList.contains('outputDiv') not supported in IE 9 and older, is there any alternative for that? classList.contains('outputDiv')及更早版本中不支持classList.contains('outputDiv') ,有什么替代方案吗?

My code is as below: 我的代码如下:

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

Thanks for any help. 谢谢你的帮助。

You can try this https://github.com/eligrey/classList.js 你可以试试这个https://github.com/eligrey/classList.js

or just use className, and search the returned string. 或者只使用className,然后搜索返回的字符串。

I just wrote this, perhaps it might be helpful? 我刚刚写了这个,也许它可能会有所帮助?

http://www.tjcafferkey.me/ie9-classname-containsclass-alternative/ http://www.tjcafferkey.me/ie9-classname-containsclass-alternative/

It basically explains this simple alternative you could use: 它基本上解释了您可以使用的这个简单替代

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

You would then run the function like this 然后,您将运行这样的功能

var isFeaturedPost = containsClass(obj, 'featured-post-class');

Edit: I've updated the function to check yourObj exists, and that yourClass is a string. 编辑:我已更新函数以检查yourObj是否存在,并且yourClass是一个字符串。

不确定它是否会起作用,因为没有测试过为crossbrowser工作,你可以尝试: -

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

If all you need is .contains() functionality, search for the substring inside of the className , ie elems[i].className.indexOf("outputDivsDesigned") > -1 . 如果您只需要.contains()功能,请搜索className内的子字符串,即elems[i].className.indexOf("outputDivsDesigned") > -1

So your function would look like this: 所以你的功能看起来像这样:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM