在父/兄弟/孩子上的jQuery removeClass
问题描述:
我正在使用以下jQuery来更改无序列表中元素的类。它似乎并不是达到效果的最有效方式。有没有更好的方法来写这个?在父/兄弟/孩子上的jQuery removeClass
$(function() {
$('nav li a').click(function() {
$(this).parent().siblings().children().removeClass('active');
$(this).addClass('active');
});
});
感谢
小号
答
它通常是在这些情况下,简单的处理程序连接到<li>
,让来自<a>
点击bubble up(默认情况下发生)。然后,您的处理程序是这样的:
$(function() {
$('nav li').click(function() {
$(this).addClass('active').siblings().removeClass('active');
});
});
然后在你的CSS,你只是占active
正对<li>
,就像这样:
li.active a { color: red; }
顺便说一句,如果你有很多<li>
元素,你”会想用.delegate()
这样的:
$('nav').delegate('li', 'click', function() {
$(this).addClass('active').siblings().removeClass('active');
});
答
还要注意的是,如果你想删除'active'
回回M非常this
所有元素,那么你可以逃脱作为
$('.active').removeClass('active');
$(this).addClass('active');
这样简单的事情,这应该通过树很容易地传播。不过,如果DOM数量众多,我可以看到它在性能上令人头痛。
答
我上面的代码中使用,它是工作
我用我的代码
enter code here : function addnewStepsUpper(){
jQuery('.hide_upper_clone_class').clone().insertAfter(".upper_clone_class1");
jQuery('.upper_clone_class1').siblings().removeClass('hide_upper_clone_class');
}
感谢 维沙尔Sanwar
完美!谢谢 - 代表正是我所期待的。 – simonyoung 2010-10-19 21:39:20