2017-02-16 87 views

回答

2

有polyfills,但如果你不想使用一個:由於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

所以我可以知道下次,爲什麼downvote?我很確定jQuery .hasClass方法確實做OP所需要的 –