Javascript: проверьте, существует ли имя класса
<div class="Trade">
<div id="Offer">
<div class="NoResults">No Result!</div>
<div class="FooterPager"> <span id="Offer"><a disabled="disabled">First</a> <a disabled="disabled">Previous</a> <a disabled="disabled">Next</a> <a disabled="disabled">Last</a> </span>
</div>
</div>
</div>
Вот мой javascript:
function Check(){
return !(iframe.contentDocument.getElementById("Offer").firstElementChild.tagName.toLowerCase() == "table");
}
Возможно ли вернуть истинное или ложное значение, чтобы проверить, существует ли класс NoResult? Если да, то как мне это сделать? Вы ребята. Я не могу изменить кодировку HTML, только javascript.
Ответы
Ответ 1
Используйте classList
.
var hasClass = element.classList.contains('some-class');
Дополнительная литература (отказ от ответственности: ссылка на мой собственный пост).
Если не поддерживается на ваших целевых платформах, попробуйте...
var hasClass = (" " + element.className + " ").indexOf(" some-class ") > -1;
Ответ 2
В Javascript без использования библиотеки, такой как jQuery, вы можете сделать это:
(' ' + MyElement.className + ' ').indexOf(' MyClassName ') != -1
Это оценивается как true, когда "MyClassName" появляется где-то внутри самой строки, как определено в свойстве className
.
В вашем конкретном случае что-то вроде:
function Check()
{
//Returns true when it exists
return (' ' + iframe.contentDocument.getElementById('Offer').firstElementChild.className + ' ').indexOf(' NoResults ') != -1;
}
Ранее в моем ответе была ошибка, в которой было бы неправильно идентифицировать частичное совпадение, как указано в комментариях. В принципе, вам нужно рассмотреть в проверке, что имя класса является целым. Оптимальный способ сделать это (как показывают другие ответы) заключается в том, что если вы пробегаете до и после как всего свойства className
, так и класса, который вы ищете, он всегда найдет весь класс.
Пока это будет работать, я рекомендую ответить Alex, пока classList
не работает доступный в каждом браузере (< = IE9 и несколько других), это более эффективное решение проблемы.
Ответ 3
if ( ~(' ' + element.className + ' ').indexOf(' NoResult ') ) {
// here you go. You've got that class...
}
Ответ 4
Вы можете использовать jQuery функцию .hasClass('classname'), и она вернет true, если имя класса существует