我有这个简单的 if 语句:
if(comments.className === "hide")
但是,我试图“选择”的元素的类是class="hide slide"
,如果是这种情况,这似乎不起作用。我将如何写这个,以便他在 2 个班级中“找到”隐藏?
我有这个简单的 if 语句:
if(comments.className === "hide")
但是,我试图“选择”的元素的类是class="hide slide"
,如果是这种情况,这似乎不起作用。我将如何写这个,以便他在 2 个班级中“找到”隐藏?
您可以使用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
您的建议)
如果他用可能的空格或开始或结束标记测试“隐藏”,dogberts 解决方案(已删除)会更好 -
if(/(^|\s)hide(\s|$)/.test(comments.className))
使用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")){
//...
}