您的位置:首页 > Web前端 > JQuery

jquery强大的选择器和javascript 的对比。

2015-05-17 17:50 309 查看
案列demo:http://codepen.io/tianzi77/pen/yNJVaM

首先写结构:

<body>
<ul id="nav">
<li class="current">tianzi</li>
<li>tianzi</li>
<li>tianzi</li>
</ul>
<div id="content">
<div class="show">content区域</div>
<div>content1</div>
<div>content2</div>
</div>


然后添加样式:

*{
padding:0;
margin: 0;
}
body{
margin:0 50%;
}
#nav{
width: 500px;
height: 50px;
line-height: 50px;
list-style: none;
border-radius: 20px;
margin-bottom: 5px;

}
#nav li{
float: left;
padding-right: 10px;
border-left: 1px solid green;
font-size: 2em;
font-family: "微软雅黑";
cursor: pointer;
}
#nav li.current{
background: #abcdef;
}
#nav li:hover{
color: #fff;
background: red;
cursor: pointer;
}
#content div{
width: 270px;
height: 180px;
border:1px solid blue;
box-sizing:border-box;
display: none;
}
#content div.show{
display: block;
}


纯javascript控制表现:

window.onload=function(){
var ul=document.getElementById("nav");
var li=ul.getElementsByTagName("li");
var content=document.getElementById("content");
var div=content.getElementsByTagName('div');
for(var i=0;i<li.length;i++){
li[i].index=i;
li[i].onclick=function(){
for(var j=0;j<li.length;j++){
li[j].className="";
div[j].style.display="none";

}
this.className="current";
div[this.index].style.display="block";
}
}
}


用js写代码比较多,而且里面有2层循环很饶人。那么我用jquery写了一下:

jq代码:

$(function(){
$("ul li").click(function(){
$(this).addClass("current").siblings().removeClass("current");
$("#content div").eq($(this).index()).show().siblings().hide();
})
})


基本2行代码就搞定,由于jquery支持强大的链式操作,所以以上代码完全可以精简为一行:

$(this).addClass("current").siblings().removeClass("current").parent().next().children().eq($(this).index()).show().siblings().hide();


不得不说jquery真是强大,研究其源码就是定义了$这个强大 的选择符。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: