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 のエレガントな 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")){
      //...
   }
于 2013-03-04T17:41:14.120 に答える