Обход неупорядоченного списка -jQuery - PullRequest
0 голосов
/ 11 февраля 2012

У меня есть что-то вроде этого:

  • первый уровень 1
    • 2-й уровень 1
      • 3-й уровень
      • 3-й уровень 2
    • 2-й уровень 2
  • первый уровень 2

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

Я пытался сделать это

$(li>a).next().addClass('makebold');

$ (li> a) действительно выбирает элемент первый уровень 1 li и затем в соответствии с next () , который выбирает ближайшего родственника выбранного / подобранного элемента, элемент, который должен получить BOLD при добавлении класса, должен быть первый уровень 2 .

but the li elements-of 2nd and 3rd level are getting bold . I am wondering why ?

вот мой html-код для списка ul

<ul> <li><a href="">first level 1</a> <ul> <li>2nd level 1 <ul> <li><a href="">3rd level</a></li> <li>3rd level 2</li> </ul> </li> <li>2nd level 2</li> </ul> </li> <li>first level 2</li><br> </ul>

Ответы [ 2 ]

1 голос
/ 11 февраля 2012

Вы выбираете элемент, следующий за a, а не li.Используйте это вместо:

$('li > a').parent().next().addClass('makebold');
0 голосов
/ 11 февраля 2012

Как насчет этого:

$('li > a').parent().find('li').addClass('makebold');

Выбирает элементы li, которые являются потомками элементов li, у которых элемент привязки является дочерним.Я надеюсь, что я правильно понял ваш вопрос.Основываясь на других ответах, я могу только предположить, что некоторые из нас не понимают, о чем вы просите.

...