javascript - 关于onclick里面变量的问题
巴扎黑
巴扎黑 2017-04-11 09:52:31
[JavaScript讨论组]
<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <p id="wrap">
            <p class="d">Item 1</p>
            <p class="d">Item 2</p>
            <p class="d">Item 3</p>
            <a id="link" href="#">链接</a>
        </p>
        <button id="btn">添加</button>

        <script type="text/javascript">
            var wrap = document.getElementById("wrap"),
                ds = wrap.getElementsByClassName("d"),
                link = document.getElementById("link"),
                btn = document.getElementById("btn");
            for(var i=0; i < ds.length; i++){
                ds[i].onclick = function(){
                console.log(this.innerHTML);
              }
            }
            link.onclick=function(){
                alert(1);
            }    
            btn.onclick = function(){
                var node = document.createElement("p");
                node.setAttribute("class", "d");
                node.innerHTML = "hello" ;
                node.onclick = function(){
                    console.log(this.innerHTML);
                }
                wrap.appendChild(node);
            }
        </script>
    </body>

</html>

如上代码,我不理解的地方是

 btn.onclick = function(){
                var node = document.createElement("p");
                node.setAttribute("class", "d");
                node.innerHTML = "hello" ;
                node.onclick = function(){
                    console.log(this.innerHTML);
                }
                wrap.appendChild(node);
            }

当点击这个添加按钮的时候,创建了一个元素节点并用node变量保存,然后给这个node又绑定了一个事件,我的疑问是当我点击btn多次,添加了不止一个node节点,这个node不会每次添加一个就把上一个node事件清空么..原理是什么?

巴扎黑
巴扎黑

全部回复(1)
迷茫

不会的,因为你每点击一次就创建了一个p并给这个p绑定了了一个事件。每次点击出来的node都是新的node。
你F12调试一下就知道了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号