簡體   English   中英

IE9 Javascript classList屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM