运用jq 写选项卡:
使用jq时,先引入jQuery
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
*{margin: 0;padding: 0;box-sizing: border-box;-webkit-box-sizing: border-box;}
.clearfix:after{content: '';clear: both;display: block;}
.box{ 400px;height: 460px;border: 1px solid #ccc;margin: 100px auto;overflow: hidden;}
.top{ 400px;height: 60px;list-style: none;}
.top li{float: left; 100px;line-height: 60px;height: 60px;border: 1px solid #ccc;text-align: center;}
.top .on{background-color: #00FF00;color:#fff}
.down{height: 400px;list-style: none;}
.down li{ 400px;height: 400px;background-color: red;float: left;display: none;}
.down li:nth-child(2){background-color: yellow;}
.down li:nth-child(3){background-color: green;}
.down li:nth-child(4){background-color: black;}
.down .on{display: block;}
</style>
</head>
<body>
<div class="box">
<ul class="top clearfix">
<li class="on">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<ul class="down clearfix">
<li class="on"></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<script src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
//思路一
// $('.top li').on('click',function(){
//所有父级以上节点 找到 下面的 top其中的所有 li
// $(this).parents().find('.top li').removeClass();
// $(this).addClass('on');
//通过当前元素的祖先元素 找到 下面的 down其中的所有 li
// $(this).parents().find('.down li').removeClass();
// $(this).parents().find('.down li').eq($(this).index()).addClass('on');
// })
//思路二
$('.top li').on('click',function(){
//同级 移除 class 不包括自己*
$(this).siblings().removeClass();
//当前添加 on
$(this).addClass('on');
//直接父集的同级元素 下的所有子集 移除class
$(this).parent().siblings().children().removeClass();
//直接父集的同级元素 下的角标与 当前角标相同的 添加on
$(this).parent().siblings().children().eq($(this).index()).addClass('on');
// $(this).addClass('on').siblings().removeClass().parent().siblings().children().eq($(this).index()).addClass('on').siblings().removeClass();
})
</script>
</body>
</html>
js写的:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
*{margin: 0;padding: 0;box-sizing: border-box;-webkit-box-sizing: border-box;}
.clearfix:after{content: '';clear: both;display: block;}
.box{ 400px;height: 460px;border: 1px solid #ccc;margin: 100px auto;overflow: hidden;}
.top{ 400px;height: 60px;list-style: none;}
.top li{float: left; 100px;line-height: 60px;height: 60px;border: 1px solid #ccc;text-align: center;}
.top .on{background-color: #00FF00;color:#fff}
.down{height: 400px;list-style: none;}
.down li{ 400px;height: 400px;background-color: red;float: left;display: none;}
.down li:nth-child(2){background-color: yellow;}
.down li:nth-child(3){background-color: green;}
.down li:nth-child(4){background-color: black;}
.down .on{display: block;}
</style>
</head>
<body>
<div class="box">
<ul class="top clearfix">
<li class="on">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<ul class="down clearfix">
<li class="on"></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<script src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
//面向过程
// var topLi = $('.top li');
// var downLi = $('.down li');
// console.log(topLi,downLi)
// for(var i=0;i<topLi.length;i++){
// topLi[i].index = i;
// topLi[i].onclick = function(){
// console.log(1);
// for(var j=0;j<downLi.length;j++){
// topLi[j].className = '';
// downLi[j].className= '';
// if(this.index == j){
// topLi[this.index].className = 'on';
// downLi[this.index].className = 'on';
// }
// }
// };
// };
//面向对象
function ClickChange(cl,cc){
this.topLi = $(cl);
this.downLi = $(cc);
var _this = this;
for(var i=0;i<this.topLi.length;i++){
this.topLi[i].index = i;
this.topLi[i].onclick = function(){
console.log(_this.downLi);
for(var j=0;j<_this.downLi.length;j++){
_this.topLi[j].className = '';
_this.downLi[j].className = '';
if(this.index == j){
_this.topLi[this.index].className ='on';
_this.downLi[this.index].className ='on';
}
}
}
}
}
var a = new ClickChange('.top li','.down li');
</script>
</body>
</html>