如何通过javascript获取字段的类?

时间:2011-11-29 10:43:59

标签: javascript

我想基于其类

执行if条件
var follow = document.getElementById('follow');

if(the class of the variable follow is active){

do this...


}
else{

do this...


}

我怎么能在javascript中做到这一点?

5 个答案:

答案 0 :(得分:4)

怎么样?
if(follow.className == "active")

答案 1 :(得分:2)

您可以使用元素的className属性。

if(follow.className == 'active') {
    // do something
}
else {
    // do something else
}

但请注意,<div class="active right">之类的元素不适用于该代码,因为className将返回“active right”。换句话说,它将适用于“有效”类的元素,但不是所有具有“有效”类的元素。

相反,你可以像这样使用正则表达式匹配来检测具有活动类(以及可能的其他类)的元素:

if(follow.className.match(/.*active.*/)) {
    // do something
}
else {
    // do something else
}

答案 2 :(得分:2)

请记住,可以为同一元素指定多个类:

<p class="active bright wavy">

你可以这样做:

if (/(^| )active( |$)/.test(follow.className)) {
   // do something
}

从JavaScript检查类的属性为.className,因为class是保留字。 (保留供将来使用:目前暂不执行任何操作。)

或者如果你要做很多事情,你可以定义一个函数:

function elementHasClass(el, cl) {
   return (new RegExp("(^| )" + cl + "( |$)")).test(el.className);
}

if (elementHasClass(follow, "active")) { ... }

答案 3 :(得分:0)

使用follow.className,因为class显然是保留的。

答案 4 :(得分:0)

如果您经常进行此类检查,请使用此选项:

Element.prototype.hasClass = function(classToCheck){

            if(this.className == classToCheck)
               return true;
            else if(this.className.indexOf(classToCheck + ' ') ==0) 
               return true
            else if(this.className.indexOf(' ' + classToCheck) == (classToCheck.length - 1) ) 
               return true
            else if (this.className.indexOf(' ' + classToCheck + ' ') >= 0)
               return true;

           return false
        }

调用它
if(document.getElementById('myId').hasClass('classIWantToCheck')){
//do the stuff
}else{
// do other stuff :(
}