<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
.active{color: red;}
</style>
<script src="js/jquery-1.4.2.min.js"></script>
<script>
$(function(){
$('li a').click(function(event) {
$(this).addClass('active').siblings().removeClass('active');
});
})
</script>
</head>
<body>
<ul>
<li><a class="active" href="#">aaa</a></li>
<li><a href="#">aaa</a></li>
<li><a href="#">aaa</a></li>
<li><a href="#">aaa</a></li>
</ul>
</body>
</html>
为什么我把.active放在 <li><a class="active" href="#">aaa</a></li>
时,这个效果不是点击哪个,哪个字体颜色改变,而是点击一个字体就改变,同时点击过的兄弟节点字体变色。
但是,这么写 <li class="active"><a href="#">aaa</a></li>
就没有问题?这是为什么?求助,谢谢
第一个你是先给
$('li a')
绑定事件的,然后你想做的是给点击的那个添加类名active
,然后其余的去掉类名。好了,问题来了,你给绑定事件的元素有兄弟元素吗?显然没有吧就他自己><a class="active" href="#">aaa</a>
。第二个你说给
li
添加类名就没问题了,那是因为li
他有兄弟元素啊,才能够删除兄弟元素的类名。