Alt Değerlere Göre Üst Değere CSS Atama
Merhaba arkadaşlar, bir menü yapısı üzerinde çalışıyorum yapım klasik ul > li a > ul > li a ...
şeklinde eğer alt menü varsa aynı şekilde ul > li
atıyorum.
Tam olarak burada eğer li
içinde ul
varsa o li a
ya .altvar
şeklinde bir css atamak istiyorum. Bunu Jquery ile nasıl yapabilirim ?
Örnek;
<ul>
<li><a href="#">Ana Menü 1</a></li>
<li><a href="#" class="altvar">Ana Menü 2</a>
<ul>
<li><a href="#">Alt Menü 1</a></li>
<li><a href="#">Alt Menü 2</a></li>
<li><a href="#">Alt Menü 3</a>
<li><a href="#" class="altvar">Ana Menü 2</a>
<ul>
<li><a href="#">Alt Alt Menü</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Ana Menü 3</a></li>
</ul>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
Evet yapabilirsin, en basit şekilde şöyle
$('li').each(function(){
if ($('>ul', this).length){
$('>a', this).addClass('altvar');
}
});
@tayfunerbilen hocam bu konuda bir yerde yine takıldım.
li içindeki a ya class atadık peki aynı classı li ye nasıl atabilirim yani döngüyü başlatan li'ye.
Deneme yanılma yapsamda bir türlü liye atayamadım.
[ÇÖZDÜM]
Şimdi çözdüm hocam if içinden a yı kaldırınca direk liye etki etti.
$('li').each(function(){
if ($('>ul', this).length){
$(this).addClass('altvar');
}
});