2015-02-03 2 views
1

В основном,Выбор элемента «Ли» после тега

У меня есть навигации, которая выглядит примерно так:

<li><a href="#">Testing</a></li> 

Что мне нужно сделать, это добавить класс к <li> тега, прямо перед ним. Таким образом, ссылка будет выглядеть так:

<li class="active"><a href="#">Testing</a></li> 

Я попытался использовать следующее:

$(document).find("a:contains('Testing')").each(function(){ 
    var element=$(this); 

    }); 

поэтому я предполагаю, что element относится к a тегу, но, даже когда я пытался использовать .prev() он по-прежнему не выбирает правильный тег.

Что можно использовать для выбора элемента <li>?

+0

FYI, '$ (document) .find (" a: contains ('Testing') ")' должно быть просто '$ (" a: contains ('Testing') ")' –

+0

Что вы на самом деле хотите достичь? Если вы хотите добавить 'активный' класс в' li', на который щелкнул якорный тэг, вы можете использовать '.parent()' или путем выбора всего 'li' непосредственно и добавить к нему класс. –

ответ

3

li элемент является родителем метки привязки. Вы должны использовать .parent() или .closest() вместо использования .prev():

$("a:contains('Testing')").parent().addClass('active'); 

или

$("a:contains('Testing')").closest('li').addClass('active'); 
0

Вы можете использовать селектор :has() Jquery:

$("li:has(a:contains('Testing'))") 

Или .has() метод:

$('li').has("a:contains('Testing')") 
Смежные вопросы