jQuery如果链接有类,则将类应用于其父类
我有一个简单的列表:jQuery如果链接有类,则将类应用于其父类,jquery,Jquery,我有一个简单的列表: <ol> <li><a href="#" class="on"> I'm on</a> </li> <li><a href="#"> I'm off</a> </li> <li><a href="#"> I'm off</a> </li> </ol> 如果 致: 使用cs
<ol>
<li><a href="#" class="on"> I'm on</a> </li>
<li><a href="#"> I'm off</a> </li>
<li><a href="#"> I'm off</a> </li>
</ol>
如果
致:
使用css有100种更好的方法,但都涉及到重构我设置的复杂滑块。如果我可以使用a.on
来影响它的.parent()
,我就完全准备好了
Le fiddle:这应该可以做到:
$('a.on').parent('li').addClass('active');
?您已将lis中所有锚定的父级设置为黄色(如果任何锚定和类处于打开状态) 改用这个:
//remove on states for all nav links
$("li a").removeClass("on");
$("li").removeClass("yellow");
//add on state to selected nav link
$(this).addClass("on");
$(this).parent().addClass('yellow');
在小提琴中,将代码更改为
if ( $(this).hasClass('on') ){
$(this).parent().addClass('yellow');
}
像下面这样的东西应该会起作用 编辑:简化了您的代码
$("li a").click(function(e){
//stop browser default
e.preventDefault();
//remove on states for all nav links
$("li a").removeClass("on").parent().removeClass('yellow');
//add on state to selected nav link
$(this).addClass("on").parent().addClass('yellow');
});
只需更换线路即可
$('li a').parent().addClass('yellow');
与
我想这就是你要找的
var $lis = $('li'),
$links = $lis.children('a');
$links.click(function(e){
//stop browser default
e.preventDefault();
var $this = $(this);
//remove on states for all nav links
$links.removeClass('on');
$lis.removeClass('yellow');
//add on state to selected nav link
$this.addClass("on").parent().addClass('yellow');
});
小提琴是。如果单击A
,则在li
上设置class=“yellow”
。不要给a
额外的class=“on”
小提琴中的CSS缺少一个}
。
$(this).parent().addClass('yellow');
var $lis = $('li'),
$links = $lis.children('a');
$links.click(function(e){
//stop browser default
e.preventDefault();
var $this = $(this);
//remove on states for all nav links
$links.removeClass('on');
$lis.removeClass('yellow');
//add on state to selected nav link
$this.addClass("on").parent().addClass('yellow');
});
$("li a").click(function(e){
//stop browser default
e.preventDefault();
//remove on states for all nav links
$("li").removeClass("yellow");
$("li a").removeClass("on");
//add on state to selected nav link
$(this).addClass("on");
$(this).parent().addClass('yellow');
});
$("li a")
.click(function(e) {
//stop browser default
e.preventDefault();
//remove on states for all nav links
$(this).parent().siblings().removeClass("yellow");
//add on state to selected nav link
$(this).parent().addClass("yellow");
})
.end();
p {margin: 1em 0; } strong {font-weight: bold }
ol {width: 125px;background: #eee; }
li { padding: 10px; border-bottom: 1px solid;}
.yellow a {background: #ccc; }
.yellow {background: #ffff00;}
<ol>
<li class="yellow"><a href="#"> A</a> </li>
<li><a href="#"> B</a> </li>
<li><a href="#"> C</a> </li>
</ol>