【问题标题】:How check if body has a specific class with JavaScript?如何使用 JavaScript 检查 body 是否有特定的类?
【发布时间】:2012-03-20 22:01:07
【问题描述】:

如何检查 body 是否有特定的类? 这是我的情况:

<body class="foo foo1 foo3"></body>

【问题讨论】:

标签: javascript if-statement


【解决方案1】:

现在有一种超级简单的方法可以做到这一点:

document.body.classList.contains('my-class-name')

【讨论】:

    【解决方案2】:
    document.getElementsByTagName("body")[0].className.match(/foo/)
    

    【讨论】:

    • 此解决方案还匹配包含 foo 的类,例如“foobar”。
    • 我收到此错误:Uncaught TypeError: Cannot read property 'className' of undefined
    【解决方案3】:

    jQuery.hasClass 为我工作...

    非 jQuery 答案,试试if( document.body.className.match('foo') ) { ... }

    【讨论】:

    • 我认为这应该是答案;不需要额外的功能;干净得多。
    【解决方案4】:
    function hasClass(ele,cls) {
         return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
    }
    
    if(hasClass(document.getElementById("test"), "test")){//do something};
    

    也许这对你有帮助:-)

    使用 jQuery 会更简单,代码更少,但没关系!

    【讨论】:

    • 你应该添加单引号或双引号,否则它不起作用:$('body')
    【解决方案5】:

    您可以为此使用Mozilla classList

    链接页面也有跨浏览器解决方案。

    【讨论】:

      【解决方案6】:

      当使用 jQuery 的 .hasClass 查找特定的 body 类时,这会返回一个 truefalse 的字符串:

      $("body").hasClass("your-class-name").toString();
      

      【讨论】:

        【解决方案7】:

        当使用 jQuery 的 .hasClass 查找特定的 body 类时,这会返回一个字符串 true or false

        if ($("body").hasClass("modal-open")) {
                                $("body").removeClass("modal-open");
                            }
        

        【讨论】:

          猜你喜欢
          • 2017-08-26
          • 2012-03-13
          • 2023-02-16
          • 2011-12-12
          • 2012-04-16
          • 1970-01-01
          • 2012-05-08
          • 2015-08-03
          相关资源
          最近更新 更多