p和li之间的应用上的区别

这是自己写的代码:

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>无标题文档</title>
 6 <style>
 7      *{margin:0;padding:0;}
 8      
 9      .box{position:absolute;
10          margin-top:100px;
11      border:1px  solid #999;
12       width:200px; 
13       left:50%;
14       margin-left:-100px;}
15       .parent>li{
16           height:30px;
17           line-height:30px;
18           list-style:none;
19           font-family:"微软雅黑";
20           font-weight:bolder;
21           background-color:#CCC;
22           border-bottom:1px solid #999;
23           }
24           
25       .elements li {
26           height:30px;
27           list-style:none;
28           line-height:30px;
29            border-bottom:1px solid #999;
30           }  
31 </style>
32 <script>
33     window.onload=function(){
34         var oparent = document.getElementById('parent');
35         var oul=oparent.getElementsByTagName(ul);
36         var oli=oparent.getElementsByTagName(li);
37         for(var i=0;i<oli.length;i++){
38             }
39         
40         }
41 
42 </script>
43 </head>
44 <body>
45 <!--今天主动用到文字垂直方向上剧中的技巧;-->
46    <div class="box" id="box">
47         <ul class="parent" id="parent">
48            <li>Web前端</li>
49             <ul class="elements">
50                  <li>JavaSript</li>
51                  <li>DIV+CSS</li>
52                  <li>jquery</li>
53              </ul>
54            <li>后台脚本</li>
55             <ul class="elements">
56                  <li>PHP</li>
57                  <li>ASP</li>
58                  <li>JSP</li>
59              </ul> 
60            <li>前端框架</li>
61            <ul class="elements">
62                  <li>Ext js</li>
63                  <li>Esspress</li>
64                  <li>YUI</li>
65              </ul>
66         </ul>
67    </div>
68 </body>
69 </html>

图片是这样的

demo的代码是这样的。

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6     <style type="text/css">
 7     *{margin:0;
 8      padding:0;
 9      font-size:13px;
10      list-style:none;}
11 
12 .menu{width:210px;
13       margin:50px auto;
14       border:1px solid #ccc;}
15 
16 .menu p{height:25px;
17         line-height:25px;
18         font-weight:bold;
19         background:#eee;
20         border-bottom:1px solid #ccc;
21         cursor:pointer;
22         padding-left:5px;}
23 
24 .menu div ul{display:none;}
25 
26 .menu li{height:24px;
27          line-height:24px;
28          padding-left:5px;}
29 </style>
30     <script type="text/javascript">
31     window.onload=function(){
32         var menu=document.getElementById('menu'),
33             ps=menu.getElementsByTagName('p'),
34             uls=menu.getElementsByTagName('ul');
35             for(var i in ps){
36                 ps[i].id=i;
37                 ps[i].onclick=function(){
38                     var u=uls[this.id];
39                     if(u.style.display=='block'){
40                         u.style.display='none';
41                     }else{
42                         u.style.display='block';
43                     }    
44                 }
45             }
46     }
47     </script>
48 </head>
49 <body>
50     <div class="menu" id="menu">
51         <div>
52             <p>Web前端</p>
53             <ul style="display:block">
54                 <li>JavaScript</li>
55                 <li>DIV+CSS</li>
56                 <li>jQuery</li>
57             </ul>
58         </div>
59         <div>
60             <p>后台脚本</p>
61             <ul>
62                 <li>PHP</li>
63                 <li>ASP.net</li>
64                 <li>JSP</li>
65             </ul>
66         </div>
67         <div>
68             <p>前端框架</p>
69             <ul>
70                 <li>Extjs</li>
71                 <li>Esspress</li>
72                 <li>YUI</li>
73             </ul>
74         </div>
75     </div>
76 </body>
77 </html>
View Code

动作效果是这样的:

还有一个问题,这里的p和li直接有某种关系,点击p,显示p下面的li的这种跟随关系,

如果将代码写成这样的话:

1             var id=i;  //零时创建的值;用来记录i,但是demo写的比较正规;
2             ps[i].οnclick=function(){
3             var    u=uls[id];
4             if(u.style.display=='none'){
5                 u.style.display='block';
6                  }else{u.style.display='none'}
7                  //上面的判断语句不能只写前半句,否则无法执行

如果只是零时的值的话,最后会出现这样的BUG

每一次点击任意一个p标签,都会显示上面的结果,我也不知道他的深层原理是什么,先记下,以后遇到他的原理,再好好的学习一下。

 

转载于:https://www.cnblogs.com/zhangwei1234/p/5779733.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值