DOM操作--续集

Posted 542684416-qq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DOM操作--续集相关的知识,希望对你有一定的参考价值。

创建与删除

  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操作--续集的主要内容,如果未能解决你的问题,请参考以下文章

原创这道Java基础题真的有坑!我也没想到还有续集。

使用 JQuery ajax 在 DOM 操作后附加事件

jquery续集

jquery 对象的 heightinnerHeightouterHeight 的区别以及DOM 元素的 clientHeightoffsetHeightscrollHeightoffset(代码片段

续集expressjs中的事务未执行

DOM操作