如果语句检测多个类中的类

时间:2013-03-04 17:37:58

标签: javascript if-statement equality

我有这个简单的if语句:

if(comments.className === "hide")

然而,我试图“选择”的元素的类是class="hide slide",如果是这种情况,这似乎不起作用。 我怎么写这个以便他“找到”两个类中的隐藏?

3 个答案:

答案 0 :(得分:3)

您可以使用comments.className.split(/\s+/);,然后迭代选项以找到您想要的内容

var classes = comments.className.split(/\s+/);
var classexists = false;
for(i=0; i<classes.length; i++){
    if(classes[i] === "specifiedclass"){
        classexists = true;
        break;
    }
if(classexists){...

将此作为一项功能

function hasClass(desiredClass,el){
  var classes = el.className.split(/\s+/);
    var classexists = false;
    for(i=0; i<classes.length; i++){
        if(classes[i] === desiredClass){
            classexists = true;
            break;
        }
    }
   return classexists;
}
if(hasClass("specifiedclass",comments){...

(感谢the system的建议)

答案 1 :(得分:2)

dogberts解决方案(删除)如果用可能的空间或开始或结束标记测试'hide'会更好 -

if(/(^|\s)hide(\s|$)/.test(comments.className)) 

答案 2 :(得分:1)

使用split并循环播放(或使用kennebec and Dogbert's elegant Regex solution,它也适用于任何边缘情况):

var parts = comments.className.split(" ");
var hasHide = false;
for (var i=0;i<parts.length;i++){
   if (parts[i] == "hide"){
      hasHide = true;
   }
}
if (hasHide){
   //...
}

或者使用jQuery:

   if ($(comments).hasClass("hide")){
      //...
   }