2013-08-15 2 views
4

Мне нужна помощь с jQuery ниже, это не работает для меня. Я хочу, чтобы стрелять какие-то действия, только если <optgroup label="Knowledge Base"> не существуетJQuery, если optgroup не содержит

Мой HTML (который не может быть изменен):

<select id="entry_forum_id" name="entry[forum_id]"> 
<optgroup label="Knowledge Base"> … </optgroup> 
<optgroup label="Incidents"> … </optgroup> 
<optgroup label="Articles"> … </optgroup> 
</select> 

Моя попытка JQuery:

if($('optgroup:not([label="Knowledge Base"])')) { 
    alert('test'); 
} 
+0

FYI, ваш селектор выглядит для любого OPTGROUP что _doesn't_ имеют 'LABEL = "База знаний"'. – Barmar

ответ

6

$('optgroup:not([label="Knowledge Base"])') возвращает обертку JQuery объект, вам необходимо проверить его свойство длины, чтобы проверить, содержит ли он какие-либо элементы.

Вам необходимо проверить

if($('optgroup[label="Knowledge Base"]').length == 0) { 
    alert('test'); 
} 
5

Я не думаю, что вам нужен псевдоселектор: нет. Просто проверьте нет OPTGROUP с этой меткой:

if($('optgroup[label="Knowledge Base"]').length == 0) { 

Fiddle.

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