Как выбрать родительский элемент с активным (скажем) классом внутри класса элементов в JQuery? - PullRequest
0 голосов
/ 10 мая 2010

Я думаю, этот пример прояснил бы. Мой HTML это:

 <li class='nav-active'><span class='maillink' id='spnInbox' >Inbox</span></li>
 <li><span class='maillink' id='spnSentMail'>Sent Mail</span></li>
 <li><span class='maillink' id='spnDraft'>Draft</span></li>
 <li><span class='maillink' id='spanTrash'>Trash</span></li>

Когда пользователь нажимает на любую другую ссылку, например, Черновик, я хочу очистить nav-active из папки «li» и назначить этот класс для черновика «li». Мой вопрос, как попасть в nav-active li из события клика .maillink. Я знаю, что могу написать каждую функцию и удалить ее, но мне было интересно, есть ли для этого селектор.

Спасибо за вашу помощь.

Ответы [ 4 ]

1 голос
/ 10 мая 2010

В обработчике кликов:

jQuery (this).parent().siblings('.nav-active').removeClass ('nav-active');
jQuery (this).parent().addClass('nav-active');
1 голос
/ 10 мая 2010

Используйте ближайший метод, затем братья и сестры . Это будет обходить родителей данного элемента до тех пор, пока не найдет первый элемент LI, а затем не найдет родственный элемент li.nav-active.

$(".maillink").click(function(e) { $(this).closest("li").siblings("li.nav-active");  } );
1 голос
/ 10 мая 2010

используйте метод братьев и сестер, чтобы получить брата с классом nav-active и очистить класс.

затем назначьте этот класс элементу, по которому щелкнули.

он попадает к родителю li, затем находит братьев и сестер li, имеющих класс nav-active, и удаляет класс оттуда. затем применяет класс к родительскому элементу span.maillink, по которому щелкнули.

$(".maillink").click(function() {
    $(this).parent("li").siblings(".nav-active").removeClass("nav-active");
    $(this).parent("li").addClass("nav-active");
});​
0 голосов
/ 10 мая 2010
$(".maillink").click(function(){ $(this).parents("nav-active li").DoRestOfCode(); });

Я думаю, это было то, что вы спрашивали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...