[英]IE9 Javascript classList Property
IE9不支持classList屬性,反正這行JavaScript使其可以在IE9中工作
this.wrap.classList.add("myClass")
有polyfill,但是如果您不想使用它,則:由於className
是用空格分隔的類列表,因此可以使用正則表達式:
return /(?:^|\s)myClass(?:$|\s)/.test(document.body.className);
(遺憾的是,我們不能僅使用\\b
[單詞邊界],因為-
作為單詞邊界,但不是類列表中的分隔符。)
替代:
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>
在前面的答案的基礎上,如果您不想自己親自處理正則表達式,可以導入jQuery並使用jQuery的.hasClass()
方法。
return $(document.body).hasClass("myClass");
jQuery處理跨瀏覽器支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.