为了账号安全,请及时绑定邮箱和手机立即绑定

代码实现--利用事件冒泡不多次获取dom元素

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>实践题 - 选项卡</title>

    <style type="text/css">

     /* CSS样式制作 */

       ul {

           list-style:none;

           margin:0;

           padding:0;

           overflow:hidden;

       }

       ul>li {

           position:relative;

           float:left;

           width:90px;

           height:42px;

           line-height:40px;

           margin:0 5px;

           border:1px solid grey;

           border-bottom:none;

           text-align:center;

           z-index:10;

       }

       ul>li:first-of-type {

           border-top:3px solid #996633;

           background-color:#fff;

       }

       .content {

           position:absolute;

           top:50px;

           width:400px;

           height: 150px;

           line-height: 2em;

           padding:5px;

           display:none;

           border:1px solid darkblue;

           border-top:3px solid #996633;

           z-index:1;

       }

       .content:first-of-type {

           display:block;

       }

    </style>

    <script type="text/javascript">

         

    // JS实现选项卡切换

        window.onload = function() {

            var tab = document.getElementsByTagName('ul')[0];

            tab.addEventListener('click', function(e) {

                if(e.target.nodeName == 'LI') {

                    for(let item of e.target.parentNode.childNodes) {

                    if(item.nodeType == 1) {

                        item.style.backgroundColor = "transparent";

                        item.style.borderTop = "1px solid grey"

                    }

                }

                e.target.style.backgroundColor = "#fff"

                e.target.style.borderTop = "3px solid #996633"

                }

            })

        }

    

    </script>

 

</head>

<body>

<!-- HTML页面布局 -->

    <div id="app">

        <ul>

            <li>房产</li>

            <li>家居</li>

            <li>二手房</li>

        </ul>

        <div class="content">

            275万购昌平邻铁三居&nbsp;总价20万买一居<br/>

            200万内购五环三居&nbsp;140万安家东三环<br/>

            北京首现零首付楼盘&nbsp;53万购东5环50平<br/>

            京楼盘直降5000&nbsp;中信府&nbsp;公园楼王现房

        </div>

        <div class="content">

            40平出租屋大改造&nbsp;美少女的混搭小窝<br/>

            经典清新简欧爱家&nbsp;90平老房焕发新生<br/>

            新中式的酷色温情&nbsp;66平撞色活泼家居<br/>

            瓷砖就像选好老婆&nbsp;卫生间烟道的设计

        </div>

        <div class="content">

            通州豪华3居260万 二环稀缺2居250w甩<br/>

            西3环通透2居290万 130万2居限量抢购<br/>

            黄城根小学学区仅260万 121平70万抛!<br/>

            独家别墅280万 苏州桥2居优惠价248万<br/>

        </div>

    </div>

</body>

</html>


正在回答

1 回答

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>实践题 - 选项卡</title>

    <style type="text/css">

     /* CSS样式制作 */  

       ul {

           list-style:none;

           margin:0;

           padding:0;

           overflow:hidden;

       }


       ul>li {

           position:relative;

           float:left;

           width:90px;

           height:42px;

           line-height:40px;

           margin:0 5px;

           border:1px solid grey;

           border-bottom:none;

           text-align:center;

           z-index:10;

       }


       ul>li:first-of-type {

           border-top:3px solid #996633;

           background-color:#fff;

       }

       .content {

           position:absolute;

           top:50px;

           width:400px;

           height: 150px;

           line-height: 2em;

           padding:5px;

           display:none;

           border:1px solid darkblue;

           border-top:3px solid #996633;

           z-index:1;

       }

       .content:first-of-type {

           display:block;

       }

       

    </style>

    <script type="text/javascript">

         

    // JS实现选项卡切换

    window.onload = function() {

            var tab = document.getElementsByTagName('ul')[0];

            var con = document.getElementsByClassName('content');

            tab.addEventListener('click', function(e) {

                if(e.target.nodeName == 'LI') {

                    for(let item of e.target.parentNode.childNodes) {

                    if(item.nodeType == 1) {

                        item.style.backgroundColor = "transparent";

                        item.style.borderTop = "1px solid grey"

                    }

                }

                e.target.style.backgroundColor = "#fff"

                e.target.style.borderTop = "3px solid #996633"

                for(i=0;i<con.length;i++){

                    con[i].style.display="none";

                }

                if(e.target.id=="fc"){

                    con[0].style.display="block";

                }else if(e.target.id=="jj"){

                    con[1].style.display="block";

                }else{

                    con[2].style.display="block";

                }

                }

            })

        }

    </script>

 

</head>

<body>

<!-- HTML页面布局 -->


    <div id="app">

        <ul>

            <li id="fc">房产</li>

            <li id="jj">家居</li>

            <li id="esf">二手房</li>

        </ul>

        <div class="content">

            275万购昌平邻铁三居&nbsp;总价20万买一居<br/>

            200万内购五环三居&nbsp;140万安家东三环<br/>

            北京首现零首付楼盘&nbsp;53万购东5环50平<br/>

            京楼盘直降5000&nbsp;中信府&nbsp;公园楼王现房

        </div>

        <div class="content">

            40平出租屋大改造&nbsp;美少女的混搭小窝<br/>

            经典清新简欧爱家&nbsp;90平老房焕发新生<br/>

            新中式的酷色温情&nbsp;66平撞色活泼家居<br/>

            瓷砖就像选好老婆&nbsp;卫生间烟道的设计

        </div>

        <div class="content">

            通州豪华3居260万 二环稀缺2居250w甩<br/>

            西3环通透2居290万 130万2居限量抢购<br/>

            黄城根小学学区仅260万 121平70万抛!<br/>

            独家别墅280万 苏州桥2居优惠价248万<br/>

        </div>

    </div>

</body>

</html>


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468194    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

代码实现--利用事件冒泡不多次获取dom元素

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信