第一章 认识jQuery

/* reset */
body{margin:0;padding:0 0 12px 0;font-size:12px;line-height:22px;font-family:"\5b8b\4f53","Arial Narrow";background:#fff;}
form,ul,li,p,h1,h2,h3,h4,h5,h6{margin:0;padding:0;}
input,select{font-size:12px;line-height:16px;}
img{border:0;}
ul,li{list-style-type:none;}
a {color:#00007F;text-decoration:none;}
a:hover {color:#bd0a01;text-decoration:underline;}

.box {
    width: 150px;
	margin: 0 auto;
}
.menu{
	overflow:hidden;
	border-color: #C4D5DF;
    border-style: solid;
    border-width: 0 1px 1px;
}
/* lv1 */
.menu li.level1 a{
    display: block;
    height: 28px;
    line-height: 28px;
    background:#EBF3F8;
	font-weight:700;
    color: #5893B7;
	text-indent: 14px;
	border-top: 1px solid #C4D5DF;
}
.menu li.level1 a:hover{text-decoration:none;}
.menu li.level1 a.current{background:#B1D7EF;}
/* lv2 */
.menu li ul{overflow:hidden;}
.menu li ul.level2{display:none;}
.menu li ul.level2 li a{
    display: block;
    height: 28px;
    line-height: 28px;
    background:#ffffff;
	font-weight:400;
    color: #42556B;
	text-indent: 18px;
	border-top: 0px solid #ffffff;
    overflow: hidden;
}
.menu li ul.level2 li a:hover{
	color:#f60;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/default.css" type="text/css" />
<title>导航栏</title>
<!-- 引入 jQuery -->
<script src="./scripts/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
//等待dom元素加载完毕.
$(document).ready(function(){
	$(".level1 > a").click(function(){
		$(this).addClass("current").next().show();
		$(this).parent().siblings().children("a").removeClass("current")
		.next().hide();
		return false;
	});
});
</script>
</head>
<body>
<p>第一步:初始化:</p>
<div class="box">
	<ul class="menu">
		<li class="level1">
			<a href="#none">衬衫</a>
			<ul class="level2">
				<li><a href="#none">短袖衬衫</a></li>
				<li><a href="#none">长袖衬衫</a></li>
				<li><a href="#none">短袖T恤</a></li>
				<li><a href="#none">长袖T恤</a></li>
			</ul>
		</li>
		<li class="level1">
			<a href="#none">卫衣</a>
			<ul class="level2">
				<li><a href="#none">开襟卫衣</a></li>
				<li><a href="#none">套头卫衣</a></li>
				<li><a href="#none">运动卫衣</a></li>
				<li><a href="#none">童装卫衣</a></li>
			</ul>
		</li>
		<li class="level1">
			<a href="#none">裤子</a>
			<ul class="level2">
				<li><a href="#none">短裤</a></li>
				<li><a href="#none">休闲裤</a></li>
				<li><a href="#none">牛仔裤</a></li>
				<li><a href="#none">免烫卡其裤</a></li>
			</ul>
		</li>
	</ul>
</div>
</body>
</html>

$(".level1>a")的结果是[<ahref="#none">衬衫</a><ahref="#none">卫衣</a><ahref="#none">裤子</a>]在给定的父元素下匹配所有的子元素

click()事件是在点击"衬衫","卫衣","裤子"链接的时候触发的。

你点击了哪个链接,哪个就是this,addClass("current")是在该<a>标记中加上一个class属性current。

比如说:你点击第一个链接,也就是"衬衫"这个链接

next()方法会返回当前链接的同辈元素<ulclass="level2">...</ul>

show就是显示该隐藏的元素。

parent会返回<liclass="level1">..</li>(也就是第一组li)

siblings会返回<liclass="level1">..</li><liclass="level1">..</li>(第二组以及第三组)

children("a")会返回直接的子元素而不是所有后代元素,然后删除class属性

接着是next().hide()就是隐藏第二组和第三组列表的子列表

相关推荐