私はこの単純な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 のエレガントな Regex ソリューションを使用します。これは、あらゆるエッジ ケースでも機能します)。
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")){
//...
}