关于javascript中动态创建的节点怎么继续使用原方法。

  经常会在写代码的时候碰到一个问题,新创建的DOM节点不能像html中已经写好的节点一样使用已给定的样式,也不能使用已经给定的方法,我总结的几个方法如下:


1.最基本的解决方式是事件委托,将事件委托给它的父元素,然后在使用target指向目标元素;

    window.οnlοad=function(){

      let ul=document.getElementsByTagName("ul");      

      let li=document.getElementsByTagName("li");

      ul.οnclick=function(e){

        let evt=e || window.event;

        let target = evt.target || evt.srcElement;

        if(target.nodeName == "li"){

          alert("11111");

        }

      }

    }

这样无论是已经给定的 li 还是动态添加的 li 都可以点击弹出 11111 了。


2.在绑定方法时,直接在动态生成的DOM里添加上onclick方法;

HTML:ul.appendChild( `<li  οnclick="fun(this)"></li>` ),使用了模板字符串;

JS:function fun(a){

    a.style.backgroundColor="red";

  }

这样新添加的 li 在点击时背景色会变红;


3.jquery方法:on( ),类似于事件委托,给父元素绑定事件点击子元素触发;

HTML:ul.appendChild( `<li></li>` ).

JS:$("ul").on("click" , "li" , function(){

    $("li").css("background","red");

  })

这样新添加的 li 在点击时背景色会变红;

 

转载于:https://www.cnblogs.com/flower-y/p/10909981.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值