IE9 Javascript classList属性

时间:2017-02-16 16:34:46

标签: javascript

IE9不支持classList属性,无论如何都围绕这行javascript使其在IE9中工作

this.wrap.classList.add("myClass") 

3 个答案:

答案 0 :(得分:2)

有polyfill,但是如果你不想使用一个:由于className是一个以空格分隔的类列表,你可以使用正则表达式:

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

(遗憾的是,我们不能只使用\b [字边界],因为-有资格作为单词边界,但不是类列表中的分隔符。)

答案 1 :(得分: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>
&#13;
&#13;
&#13;

答案 2 :(得分:-1)

在前面的答案的基础上,如果你不想自己处理正则表达式的细节,你可以导入jQuery并使用jQuery的.hasClass()方法。

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

jQuery处理跨浏览器支持。