Javascript: проверьте, существует ли имя класса

<div class="Trade">
    <div id="Offer">
        <div class="NoResults">No Result!</div>
        <div class="FooterPager"> <span id="Offer"><a disabled="disabled">First</a>&nbsp;<a disabled="disabled">Previous</a>&nbsp;<a disabled="disabled">Next</a>&nbsp;<a disabled="disabled">Last</a>&nbsp;</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, если имя класса существует