Javascript 向选定链接的所有级别的父级添加不同的类
下面是我的htmlJavascript 向选定链接的所有级别的父级添加不同的类,javascript,jquery,html,css,Javascript,Jquery,Html,Css,下面是我的html <ul> <li> <a href="">Women</a> <ul> <li><a href="">Top</a> <ul> <li><a href="">Short</a></li> <li&g
<ul>
<li>
<a href="">Women</a>
<ul>
<li><a href="">Top</a>
<ul>
<li><a href="">Short</a></li>
<li><a href="">Lengthy</a>
<ul>
<li><a class="selected" href="">Child Parent</a></li>
<li><a href="">Child Parent</a></li>
<li><a href="">Child Parent</a></li>
<li><a href="">Child Parent</a></li>
</ul>
</li>
<li><a href="">Medium</a></li>
<li><a href="">Full Sleve</a></li>
</ul>
</li>
<li><a href="">Casuals</a></li>
<li><a href="">Jeans</a></li>
<li><a href="">Kurthah</a></li>
</ul>
</li>
<li><a href="">Men</a>
<ul>
<li><a href="">Top</a></li>
<li><a href="">Casuals</a></li>
<li><a href="">Jeans</a></li>
<li><a href="">Kurthah</a></li>
</ul>
</li>
<li><a href="">Children</a></li>
<ul>
-
-
-
-
这里我选择了一个类,作为一个链接。我需要的是,我想将一个类添加到父级li、它的顶级父级li>和它的顶级父级li
所有的家长都应该有不同的班级
请在这里找到小提琴:试试这个:
$(document).ready(function() {
$(document).find("a.selected").each(function(){
$(this).parents("li").each(function(i, v){
$(v).addClass('newPar' + i);
});
});
});
其中i是索引(0、1、2等,用于不同的类),获取所有父元素,使用参数“li”,它仅检索所有li父元素。您可以尝试
$(document).ready(function() {
$("a").attr("href", "#"); // kind of disable all links
$("a").click(function () {
$("a").removeClass("selected");
$(this).addClass("selected");
$(this).parents("a").addClass("selected");
});
}))
html的问题在于,
不是下一个ul
的父母,而是兄弟姐妹,正如我在评论中所说,如果您想添加一个以数字递增的类,您可以使用它(但要删除这些类将很困难)
$(文档).ready(函数(){
变量$selected=$('.selected');
var$parents=$selected.parent().parents('li');
$parents.children('a').addClass(函数(i){
返回“父级-”+(i+1)
});
});代码>
。已选定{
颜色:#FF0000;
}
.家长-1{
颜色:#00FF00;
}
.家长-2{
颜色:#0000FF;
}
.家长-3{
颜色:#FF00FF;
}
-
-
-
-
如果您需要向每个父级添加不同的类,这里还有另一个。但是,此代码可以进行优化
$(document).ready(function() {
var curr_parent= $(document).find("a.selected").parent();
var parent1= $(curr_parent).parent().closest('li');
$(parent1).addClass('parent1')
var parent2 = $(parent1).parent().closest('li');
$(parent2).addClass('parent2')
var parent3 = $(parent2).parent().closest('li');
$(parent3).addClass('parent3')
});
要添加的类是什么?它是如何确定的就像active1、active2那样,上面的提琴解决了您的问题?更简单的方法是