我有这个简单的if语句:
if(comments.className === "hide")
然而,我试图“选择”的元素的类是class="hide slide"
,如果是这种情况,这似乎不起作用。
我怎么写这个以便他“找到”两个类中的隐藏?
答案 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")){
//...
}