我想基于其类
执行if条件var follow = document.getElementById('follow');
if(the class of the variable follow is active){
do this...
}
else{
do this...
}
我怎么能在javascript中做到这一点?
答案 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 :(
}