如何使用 JavaScript 检查 body 是不是有特定的类?

Posted

技术标签:

【中文标题】如何使用 JavaScript 检查 body 是不是有特定的类?【英文标题】: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>

【问题讨论】:

看看this question。它有一些很好的例子。 Test if an element contains a class? 的可能重复项——请在提出新问题之前使用搜索。 jQuery has been ask before as well 是如何完成的。 【参考方案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");
                    

【讨论】:

以上是关于如何使用 JavaScript 检查 body 是不是有特定的类?的主要内容,如果未能解决你的问题,请参考以下文章

我如何使用JavaScript在json中搜索指定的结果[键+值]? [关闭]

JavaScript完整性检查

如何从 Objective-C 中调用的 JavaScript 函数访问 response.body?

javascript检查数据中是否存在相同的元素

如果连接是本地主机,如何使用 javascript 检查?

在 JavaScript 中使用 IF 处理复选框状态