2010-03-20 4 views
0

У меня есть следующий оператор JQuery и он добавляет класс 'current', но он не удаляет форму класса для братьев и сестер.removeClass jquery statement не работает

Любые идеи, почему?

$('.page_link[longdesc=' + page_num + ']') 
    .addClass('current').siblings('.current').removeClass('current'); 

Malcolm

+1

У вас есть образец HTML для этого? Вы убедились, что 'siblings()' захватывает то, что вы хотите? –

+0

Это вопрос разметки. Повторяя приведенный выше пример и используя разметку, с которой вы пытаетесь применить этот фрагмент, мне удалось заставить его работать, а это значит, что это не проблема с вашей логикой JavaScript/jQuery. – gpmcadam

ответ

3

Без вашего HTML-разметки, я предполагаю, что классы не являются прямыми братьями и сестрами, но завернутые в чем-то (чтобы дать им границу, может быть?) В этом случае, .siblings() не находит что-нибудь.

В любом случае, это может быть проще просто удалить current из всех class="page_link" элементов, не заботясь, где они, как это:

$(".page_link.current").removeClass('current'); 
$('.page_link[longdesc=' + page_num + ']').addClass('current'); 
+0

спасибо, я все еще недоумеваю, почему, если у меня это не получится? $ (". CurrentmenuItem"). RemoveClass ("currentMenuItem"); Я должен был это сделать $ ("# mainMenu .currentmenuItem"). RemoveClass ("currentMenuItem"); – vvMINOvv

+0

@vvMINOvv - классы чувствительны к регистру, 'M' в' Меню' отличается в вашей первой строке :) –

+0

@Nick_Craver - глупо меня. большое спасибо – vvMINOvv

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