IE9不支持classList属性,无论如何都围绕这行javascript使其在IE9中工作
this.wrap.classList.add("myClass")
答案 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;
答案 2 :(得分:-1)
在前面的答案的基础上,如果你不想自己处理正则表达式的细节,你可以导入jQuery并使用jQuery的.hasClass()
方法。
return $(document.body).hasClass("myClass");
jQuery处理跨浏览器支持。