2013-06-19 2 views
0

, пытающийся выяснить, как совместить, если селектор имеет определенный класс. например.Как проверить, имеет ли селектор класс «родной»

<p class="myClass visible"> 

if($(".myClass").is(".visible")) { 
    alert("visible"); 
} 

Я также пробовал hasClass, но это не похоже на работу с одним и тем же элементом.

+1

Ваш исправленный код работает отлично: http://jsfiddle.net/geary/AWcMJ/ –

+0

Вы знакомы с инструментами разработчика JavaScript, доступных в большинстве браузеров? Они были бы очень полезны для вас в выявлении этих проблем. Возьмите любой скрипт и добавьте оператор 'debugger;' в точке кода, где вы не уверены в том, что происходит. Откройте инструменты разработчика и загрузите свою страницу. Он остановится в отладчике, где вы сможете проверить свои переменные, DOM и т. Д. Вы также можете попробовать быстрые тесты кода прямо в консоли JavaScript отладчика. Инструменты Chrome dev являются моими любимыми: https://developers.google.com/chrome-developer-tools/ –

+0

Кроме того, как я уже упоминал в другом комментарии, вы, похоже, немного смешиваете свои тэги и имена классов. Очень понятно, как это могло произойти, поскольку - довольно смутно - некоторые из используемых здесь функций требуют '.' Для имени класса, а другие нет. Чтобы помочь сохранить это прямо: если вы пишете * селектор *, как в вызове '$ (...)', вам нужно использовать префикс '.' Для имени класса, как и в любом селекторе CSS. Метод '.is()' также принимает селектор, поэтому вам нужно '.'. Тем не менее, метод '.hasClass()', предложенный в некоторых ответах, использует голое имя класса * без * префикса '. '. –

ответ

3

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

if($(".myClass").hasClass("visible")) { 
    alert("visible"); 
} 
+0

Имейте скрипку, чтобы доказать свою точку зрения: http://jsfiddle.net/C3U5n/: D – tymeJV

+0

hmm клянусь, я попробовал это, но это не сработало. Попытка в скрипке, похоже, позволяет этому работать. http://jsfiddle.net/mVLkW/ – Lukasz

+0

ах, кажется, что проблема в том, что я использую его в функции: http://jsfiddle.net/mVLkW/4/ – Lukasz

1

Вы пропустили .

if($(".myClass").is(".visible")) { 
    alert("visible"); 
} 
+0

О, извините, это то, что я хотел напечатать. для меня это тоже не работает. – Lukasz

+0

@ Lukasz, тогда у вас должна быть другая проблема. проверьте свою консоль на наличие ошибок –

+2

@KevinB 'is' возвращает true/false. – dfsq

2

hasClass определенно должны работать. Вы также можете проверить длину возвращаемого набора элементов.

if ($(".myClass.visible").length) { 
    //do stuff 
} 
Смежные вопросы