Вы можете использовать функцию .parents()
, связанную с .length
для каждой ссылки:
$('#ContentLeftNav a').each(function() {
$(this).addClass('expandNav' + $(this).parents('#ContentLeftNav ul').length);
});
Но если вы просто используете это для стилизации, вы можете рассмотреть возможность использования простого CSS, иПропуск JS в целом:
#ContentLeftNav ul a {...}
#ContentLeftNav ul ul a {...}
#ContentLeftNav ul ul ul a {...}
/* And so forth. */
Обновление:
Мне кажется, я неправильно понял исходный вопрос.Если вы используете класс .expandNav
для маркировки ссылок, которые используются для отображения / скрытия более подробной информации (если хотите, расширяемого дерева), и вам нужны только ссылки, которые непосредственно предшествуют <ul>
s, чтобы получитькласс, тогда вы на самом деле хотите что-то еще, как это:
$('#ContentLeftNav a + ul').each(function() {
// $(this) is the ul, so $(this).prev() is the a:
$(this).prev().addClass('expandNav' + $(this).parents('#ContentLeftNav ul').length);
});
Надеюсь, это поможет!