$(".level>a").click(function(){
$(this).addClass("current") 给当前的元素添加 current样式
.next().show() 下一个元素显示
.parent().siblings().children("a").removeClass("current")
父元素的同辈元素的子元素<a>移除"current"样式
.next().hide() 它们的下一个元素隐藏
return false;
})
当点击到a元素(class含有level1的子元素)时候,给其添加名为current的class,然后将紧邻其后面的元素显示出来,同时把它的父辈的同辈元素内部子元素a都去掉class=current,并且将紧邻它们后面的元素都隐藏。
这就是jQuery强大的链式操作,一行代码就完成了导航栏的功能。
总结:
1:对于同一个对象不超过3个操作的,可以直接写成一行。代码如下:
$("li").show().unbind("click");
2:对于同一个对象的较多操作,建议每行写一个操作,代码如下:
$(this).removeClass("mouseout")
.addClass("mouseOver")
.stop()
.fadeTo("fast",0.6)
.fadeTo("fast",1)
.unbind("click")
.click(function(){
//do something...
})
3:对于多个对象的少量操作,可以每个对象写一行,如果涉及到子元素,可以考虑适当的锁进,例如上面提到的代码
$(this).addClass("highlight")
.children("li").show().end()
.siblings().removeClass("highlight")
.children("li").hide();
代码简析
$("#table>tbody>tr:has(td:has(:checkbox:enabled))").css("background","red");
这段代码的作用是,在一个id为table的表格的tbody元素中,如果每行的一列中的checkbox没有被禁用,则把这一行的背景色设为红色。