2017-02-16 3 views

答えて

2

ありpolyfillsがありますが、あなたはしたくない場合は、1つを使用します:classNameはクラスのスペース区切りのリストであるので、あなたは正規表現を使用できます、

return /(?:^|\s)myClass(?:$|\s)/.test(document.body.className); 

-は、単語の境界としての資格ので、(悲しいことに、私達はちょうど\b [ワード境界]を使用することはできませんがが、クラスリストのセパレータではありません。 )

0

代替:前回の回答で

const hasClass = ($element, className) => { 
 
    const match = new RegExp(`(^|\\s)${className}(\\s|$)`).test($element.className); 
 
    return $element.className && match; 
 
}; 
 

 
const $el = document.querySelector('.foo'); 
 

 
alert(hasClass($el, 'foo'));
.foo { 
 
    background: tomato; 
 
}
<div class="foo">Foobar</div>

-1

ビル、あなたは正規表現の核心を自分で対処する必要がしたくない場合、あなたはjQueryのをインポート可能性があり、代わりにjQueryの.hasClass()メソッドを使用してください。

return $(document.body).hasClass("myClass"); 

jQueryはブラウザ間のサポートを処理します。

+0

私は次回のためになぜダウンボートを知ることができますか?私は、jQueryの.hasClassメソッドが、OPが望んでいることをしていると確信しています –

関連する問題