-2

特定の文字列を持つクラスを削除する必要があります。
私は以下を試しましたが、うまくいきません。

<body class="myClass someStringAndOtherString"></body>

$('body').removeClass('class', ':contains("someString")');

何か案は?

4

3 に答える 3

2

クラス'someString'を削除するには、次のようにします。

$('body').removeClass('someString');

'someString'クラスが見つかった場合にすべてのクラスを削除するには:

$('body').hasClass('someString').removeAttr('class');

文字列を含むクラスを削除するには:

ライブデモ

// test if someString is present
if( $('body').attr('class').indexOf('someString') != -1){
     // get classes as array
     var classes = $('body').attr('class').split(' ');
     // loop over array
     for(i=0;i< classes.length; i++){
          // is this class a class that contains someString?
          if(classes[i].indexOf('someString') != -1){
              // remove said class
              $('body').removeClass(classes[i]);
          }
     }
}

またはここでは関数として:

ライブデモ

function removeClassesThatContainString(selector, someString){
    var $selector = $(selector),
        classAttr = $selector.attr('class');
    if(classAttr.indexOf(someString) != -1){
        var classes = classAttr.split(' ');
        for(i=0; i<classes.length; i++){            
            if(classes[i].indexOf(someString) != -1){
                $selector.removeClass(classes[i]);
            }
        }
    }
}

次に、次のようになります。

removeClassesThatContainString('body', 'someString');
于 2012-10-18T14:56:07.640 に答える
0
$('body').removeClass('someString');

クラスが複数の場所に存在する場合:

$('.someString').removeClass('someString');

新しい質問への回答を編集します。

$('[class*="someString"]').each(function () 
  var classes = $(this).attr('class').split(' ');
  for(var i = 0; i < classes.length; ++i) {
    if(classes.indexOf('someString') >= 0) {
      $(this).removeClass('classes[i]);
    }
  }
});
于 2012-10-18T15:01:05.123 に答える
0

このコードを試すことができます。

$('body').removeClass(function(i,c){var classes=c.split(' ');for(var i=0;i<classes.length;i++){if(/someString/.test(classes[i]))return classes[i];}});

someStringAndOtherString、thissomeString、someStringなどのクラスが削除されます。

複数のクラスの場合、一致するクラスのみが削除されるため、この例では、「myClass」クラスはそのままになります。

于 2012-10-18T15:30:08.280 に答える