2013-11-13 2 views
1

У меня есть проблема, которую я не могу решить с помощью JQuery и переключателей. Что я хочу сделать, так это проверить, выбран ли переключатель, если я изменяю стиль его контейнера. У меня есть на следующие:Ячейка переключателя JQuery проверена

if ($("input:radio").is(":checked")) { 

    $(".panel").addClass("panel-active"); 
} 

Теперь это проверяет, если переключатель проверяется, и если это так, то соответствующий класс добавляется к родителю, но он добавляет класс для всех родителей, как и ожидалось.

Я хочу только добавить класс к родительскому элементу проверенного переключателя.

Я попытался это

$(this).parent().addClass("panel-active"); 

Но это не кажется, что сделать что-нибудь.

Как я могу заставить это работать?

Благодаря

+1

где HTML- –

+0

Вы можете показать больше коды и HTML? Как, где это условие помещается? в событии изменения? –

ответ

1

Я думаю, что вы должны сделать петлю из всех радиокнопок первой, чтобы проверить каждый из них и добавить класс к родителю:

$("input:radio").each(function(){ 
    if($(this).is(":checked")) { 
     $(this).parent().addClass("panel-active"); 
    } 
} 
+0

Привет, это сделало это спасибо. В конце концов, мне нужно было добавить его родителям родителей, так как я не понял его глубины, но при этом каждый цикл работал отлично, спасибо. –

2

Не могли бы вы попробовать это:

$("input:radio:checked").parent().addClass("panel-active"); 

Или что-то подобное?

+0

Это тоже сработало, спасибо. –

2

см. Эту скрипку. jsfiddle.net/7VXXN/

Если у вас есть несколько флажков и первый флажок, то все родительские классы имеют класс «active-panel». вместо этого используйте $ .each.

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