检查是否存在没有jQuery的CSS类

时间:2011-12-06 19:12:00

标签: javascript prototypejs

使用vanilla javascript或prototype可以有人告诉我如何运行检查以查看是否存在类?例如,我正在使用以下代码添加一个名为hideIt的类:

var overlay = document.getElementById("overlay_modal");
overlay.className += " hideIt";

我还需要一个脚本,以后可以检查hideIt是否存在。我尝试过这样的事情:

if (overlay.className == "hideIt")

但这并不好。有什么想法吗?

4 个答案:

答案 0 :(得分:6)

使用regexp\b将匹配单词边界(空格,换行符,标点字符或字符串结尾)。

var overlay = document.getElementById("overlay_modal");
if (overlay.className.match(/\bhideIt\b/)) 
{
    // frob a widget
}

答案 1 :(得分:4)

你可以使用getElementsByClassName(),虽然所有浏览器都不支持(不在IE< 9中):

if (!document.getElementsByClassName('classname').length){
    // class name does not exist in the document
}

else {
    // class exists in the document
}

根据浏览器兼容性要求,您可以使用querySelectorAll()

if (document.querySelectorAll('#overlay_modal.hideIt')) {
    // the element with id of overlay_modal exists and has the class-name 'hideIt'
}

参考文献:

答案 2 :(得分:3)

var id = document.getElementById("id");
var classes = id.className.split(" ");
if(classes.indexOf("class_name") == -1)
{
}

答案 3 :(得分:3)

因为这里提出的问题也是the Prototype way

if (overlay.hasClassName('hideIt'))