IE9 не поддерживает свойство ClassList будет в любом случае вокруг этой линии JavaScript для того, чтобы работать в IE9IE9 Javascript ClassList Недвижимость
this.wrap.classList.add("myClass")
IE9 не поддерживает свойство ClassList будет в любом случае вокруг этой линии JavaScript для того, чтобы работать в IE9IE9 Javascript ClassList Недвижимость
this.wrap.classList.add("myClass")
Есть polyfills, но если вы не хотите использовать один : поскольку 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 обрабатывает кросс-браузерную поддержку.
Итак, я могу узнать в следующий раз, почему нижний предел? Я уверен, что метод jQuery .hasClass делает то, что хочет OP –
https://duckduckgo.com/?q=classlist+polyfill – Quentin