2013-05-10 2 views
6
<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:Javascript: Проверьте имя_класса существует

function Check(){ 
return !(iframe.contentDocument.getElementById("Offer").firstElementChild.tagName.toLowerCase() == "table"); 
} 

Можно ли вернуть истинное или ложное значение, чтобы проверить, если класс «NoResult» существует? Если да, то как мне это сделать? Вы ребята. Я не могу изменить кодировку HTML, только javascript.

ответ

1

В JavaScript без использования библиотеки как JQuery, вы могли бы сделать это:

(' ' + MyElement.className + ' ').indexOf(' MyClassName ') != -1 

Это имеет значение верно, когда появляется «MyClassName» где-нибудь сам по себе внутри строки, как это определено на className собственности.

В вашем конкретном случае, что-то вроде:

function Check() 
{ 
    //Returns true when it exists 
    return (' ' + iframe.contentDocument.getElementById('Offer').firstElementChild.className + ' ').indexOf(' NoResults ') != -1; 
} 

Существовал ранее ошибка в моем ответе, где было бы неправильно определить частичное совпадение, как указано в комментариях. В принципе, вам нужно рассмотреть в проверке, что имя класса является целым. Оптимальный способ сделать это (как показывают другие ответы) заключается в том, что если вы пробегаете до и после как всего свойства className, так и класса, который вы ищете, он всегда найдет весь класс.

В то время как это будет работать, я рекомендую Alex's answer в то время как classListisn't available in every browser (< = IE9 и некоторые другие), это аккуратнее решение проблемы.

18

Использование classList.

var hasClass = element.classList.contains('some-class'); 

Further Reading (отказ от ответственности: Ссылка на мою должность).

Если не поддерживается в ваших целевых платформах, а затем попробовать ...

var hasClass = (" " + element.className + " ").indexOf(" some-class ") > -1; 
+0

+1 для 'classList' – Turnerj

+0

@Turnerj - К сожалению, даже IE9 не поддерживает это :( –

+2

Ahhh, вы правы, он не поддерживает его. Для тех, кто хочет знать поддержку, [проверьте здесь] (http://caniuse.com/#search=classList) – Turnerj

1
if (~(' ' + element.className + ' ').indexOf(' NoResult ')) { 
    // here you go. You've got that class... 
} 
-1

Вы можете использовать .hasClass («имя_класса») функция JQuery и возвращает истину, если имя класса существует

Смежные вопросы