js进阶 11-24 jquery如何实现选项卡的制作

js进阶 11-24 jquery如何实现选项卡的制作

一、总结

一句话总结:ul>li做选项卡的选项卡头,多个div做选项卡的内容,点到对应的li,就切换到对应的div,用index()获取li索引,与div联系。

1、如何获取一个元素所在父亲中同类孩子的索引?

index()方法

53                 $('#content div').eq($li.index(this)).show().siblings().hide()

2、如何选择除自己之外的所有同级?

没必要用not()方法,用siblings()就足够了,简单好用

52                 $(this).addClass('active').siblings().removeClass('active');

3、除clear:both之外还有什么好方法可以清楚浮动?

设置margin-bottom,因为这样就能保证不在同一行(在多行),float的效果自然影响不到

11         #list{
12             height: 30px;line-height: 30px;
13             margin-bottom: 2px
14         }

二、11-24 jquery如何实现选项卡的制作

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>选项卡3</title>
 6     <script type="text/javascript" src="jquery-3.1.1.min.js"></script>
 7     <style>
 8         *{margin: 0px;padding: 0px}
 9         body{padding: 50px}
10         ul {list-style-type: none;}
11         #list{
12             height: 30px;line-height: 30px;
13             margin-bottom: 2px
14         }
15         #list li{
16             width: 100px;text-align: center;
17             border:1px solid green;
18             background: rgba(100,50,20,0.2);
19             float:left;
20             cursor: pointer;
21         }
22         #content{
23             width: 304px;height: 150px;
24             border:1px solid green;border-top: none;
25         }
26         #content div{display: none;    }
27         #content div.show{display: block;}
28         #list li.active{
29             background: #fff;
30             border-bottom: none;
31         }
32         
33     </style>
34 </head>
35 <body>
36 <div id="tab">
37     <ul id="list">
38         <li class="active">第一部分</li>
39         <li>第二部分</li>
40         <li>第三部分</li>
41     </ul>
42     <div id="content">
43         <div class="show">JS进阶......</div>
44         <div>JQ精讲......</div>
45         <div>JS+JQ+CSS3特效、技巧、案例专题......</div>
46     </div>
47 </div>
48     <script>
49         $(function(){
50             var $li=$('#list li')
51             $li.click(function(){
52                 $(this).addClass('active').siblings().removeClass('active');
53                 $('#content div').eq($li.index(this)).show().siblings().hide()
54             })
55         })
56     </script>
57 </body>
58 </html>
59 
60 <!--// alert($li.index(this))
61  //index()    
62 返回指定元素相对于其他指定元素的 index 位置
63 eq($li.index(this)).css('display','block').siblings().css('display','none')
64             // $('#content div').eq($li.index(this)).show().siblings().hide() -->
 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/9257372.html