码迷,mamicode.com
首页 > 其他好文 > 详细

DOM操作--续集

时间:2018-10-23 14:47:40      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:NPU   elb   nod   span   listener   事件绑定   dom操作   上层   remove   

创建与删除

  1.创建元素:createElement

  2.添加元素:div.appendChild()

  3.删除元素:grand.removeChild(parent)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <title>创建与删除</title>
    </head>
    <body>
        <input type="file"/ ><button>添加</button>
    </body>
    <script>
        var btn = document.getElementsByTagName(button)[0]
        
        btn.onclick = function(){
            //创建一个div
            var div = document.createElement(div)
            //创建一个input
            var input = document.createElement(input)
            input.type = file
            //将input添加到div中
            div.appendChild(input)
            //创建一个按钮
            var button = document.createElement(button)
            button.innerText = 删除
            button.onclick = function(){
                //找到父级元素
                var parent = this.parentNode
                //找到祖父级元素
                var grand = parent.parentNode
                //删除父级元素
                grand.removeChild(parent)
            }
            //将按钮添加到div
            div.appendChild(button)
            //将div添加到文档中
            btn.parentNode.appendChild(div)
        }
    </script>
</html>

事件冒泡

  1.说明:当下层元素和上层元素支持同一事件,上层事件触发时,下层事件也触发,这就叫事件冒泡

  2.取消事件冒泡:ev.cancelBubble = true

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <title>事件冒泡</title>
        <style>
            body{
                background:red;
            }
            div{
                width:300px;
                height:200px;
                background:blue;
            }
        </style>
    </head>
    <body onclick="bottomLevel();">
        <div onclick="topLevel();"></div>
    </body>
    <script>
        function bottomLevel(){
            alert(我是来自社会最底层的呼声)
        }
        function topLevel(e){
        //获取事件
            var ev = e || event
        //取消事件冒泡
        ev.cancelBubble = true
            alert(我是来自社会最高层的呼声)
        }
    </script>
</html>

事件绑定

  1.说明:当同一个事件触发时,先要同时调用多个处理函数,直接设置后面的覆盖前面的,可以通过事件绑定解决

  2.示例:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <title>事件绑定</title>
        <style>
            div{
                width:200px;
                height:200px;
                background:red;
            }
        </style>
    </head>
    <body>
        <div></div>
    </body>
    <script>
        var div = document.getElementsByTagName(div)[0]
        //传统方式不行(后面的设置会覆盖前面的)
        //div.onclick =giveRed
        //div.onclick =giveGreen

        //添加事件绑定
        //div.addEventListener(click,giveRed,false)
        //div.addEventListener(click,giveGreen,false)
        
        addBind(div,click,giveRed)
        addBind(div,click,giveGreen)
        
        
        //移除事件绑定
        //div.removeEventListener(click,giveGreen,false)
        delBind(div,click,giveRed)
        
        function giveRed(){
            alert(红色)
        }
         function giveGreen(){
            alert(绿色)
        }
        
        //兼容绑定事件
        function addBind(obj,ev,func){
            if(obj.addEventListener){
                //高级浏览器
                obj.addEventListener(ev,func,false)
            }else{
                    //低级浏览器
                    obj.attachEvent(on + ev,func)
            }
        }
        //兼容取消绑定
        function delBind(obj,ev,func){
            if(obj.removeEventListener){
                //高级浏览器
                obj.removeEventListener(ev,func,false)
            }else{
                    //低级浏览器
                    obj.detachEvent(on + ev,func)
            }
        }
    </script>
</html>

 

DOM操作--续集

标签:NPU   elb   nod   span   listener   事件绑定   dom操作   上层   remove   

原文地址:https://www.cnblogs.com/542684416-qq/p/9835846.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!