IE9不支持classList属性,在IE9中,这行javascript中是否存在该属性
this.wrap.classList.add("myClass") 发布于 2017-02-17 00:37:11
有多个填充,但如果您不想使用它:因为className是一个空格分隔的类列表,所以您可以使用正则表达式:
return /(?:^|\s)myClass(?:$|\s)/.test(document.body.className);(遗憾的是,我们不能只使用\b单词边界,因为-可以作为单词边界,而不是类列表中的分隔符。)
发布于 2017-02-17 00:40:13
另一种选择:
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>
发布于 2017-02-17 00:41:53
基于前面的回答,如果您不想自己处理正则表达式的细节,可以导入jQuery并改用jQuery的.hasClass()方法。
return $(document.body).hasClass("myClass");jQuery负责处理跨浏览器支持。
https://stackoverflow.com/questions/42279695
复制相似问题