0

我有这个简单的 if 语句:

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

但是,我试图“选择”的元素的类是class="hide slide",如果是这种情况,这似乎不起作用。我将如何写这个,以便他在 2 个班级中“找到”隐藏?

4

3 回答 3

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您的建议)

于 2013-03-04T17:40:11.987 回答
2

如果他用可能的空格或开始或结束标记测试“隐藏”,dogberts 解决方案(已删除)会更好 -

if(/(^|\s)hide(\s|$)/.test(comments.className)) 
于 2013-03-04T17:55:27.527 回答
1

使用split并循环它(或使用kennebec 和 Dogbert 的优雅正则表达式解决方案,它也适用于任何边缘情况):

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")){
      //...
   }
于 2013-03-04T17:41:14.120 回答