У меня есть это HTML-меню:
<div id="menu">
<ul>
<li>
<a href="1.html"> 1 </a>
</li>
<li>
<a href="2.html"> 2 </a>
</li>
<li class="submenu">
<a href="#"> 3 list </a>
<ol>
<li>
<a href="31.html"> 31 </a>
</li>
<li>
<a href="32.html"> 32 </a>
</li>
<li>
<a href="33.html"> 33 </a>
</li>
</ol>
</li>
<li class="submenu">
<a href="#"> 4 list </a>
<ol>
<li>
<a href="41.html"> 41 </a>
</li>
<li>
<a href="42.html"> 42 </a>
</li>
</ol>
</li>
<li>
<a href="5.html"> 5 </a>
</li>
</ul>
</div>
Я использую JQuery, и я хотел получить элементы ссылки (a), которые не являются частью подменю (1,2 и 5), поэтому я попытался:
$('#menu ul li a').each(function(){
//do something with the link element
});
Но я понял, что этот селектор берет все элементы ссылки (1,2,31,32,33,41,42 и 5).
Я проверил руководство по JQuery и не смог найти какой-либо способ получить нужные мне элементы ссылок всего лишь за один шаг, поэтому я наконец сделал это:
$('#menu ul li a').each(function(){
if($(this).parent().parent().is('ul')){
//do something with the link element
}
});
Это просто берет все элементы ссылки и в условных фильтрах те, которые имеют ul дед (1,2 и 5).
Я хотел бы знать, есть ли лучший и более чистый способ получить элементы ссылки не подменю.
Спасибо!