Определение присутствия класса элемента в JavaScript
При проверке атрибутов класса элемента часто необходимо проверить, содержит ли он определенный класс. В предоставленном коде используется оператор переключения для проверки точного значения класса элемента, но этот подход не позволяет обнаружить частичные совпадения.
Чтобы устранить это ограничение, рассмотрите возможность использования метода element.classList .contains. Этот метод принимает имя класса в качестве параметра и возвращает логическое значение, указывающее его присутствие в списке классов элемента:
element.classList.contains(class);
Этот метод универсально поддерживается в современных браузеров и предоставляет единый способ проверки включения классов.
В качестве альтернативы, для совместимости со старыми браузерами, в которых отсутствует метод .contains, вы можете использовать следующее модифицированная версия метода indexOf:
function hasClass(element, className) { return (' ' element.className ' ').indexOf(' ' className ' ') > -1; }
Эта модификация гарантирует точное обнаружение частичных совпадений, избегая ложных срабатываний, когда искомый класс является частью более крупного имени класса.
Применение этого метода к приведенному примеру:
var test = document.getElementById("test"), classes = ['class1', 'class2', 'class3', 'class4']; test.innerHTML = ""; for(var i = 0, j = classes.length; iИспользуя метод .contains или модифицированную функцию indexOf, вы можете надежно определить, содержит ли элемент определенный класс в JavaScript, независимо от совместимости браузера или наличия частичных совпадений.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3