DOM总结 三种创建时间的方法及绑定事件的方法

三种创建元素方式区别

1. document .write() 创建元素

如果页面文档流加载完毕,再调用这句话会导致页面重绘

   var btn = document . querySelector( ' button ');//这段代码。程序冲上往下执行到最末结束。
        										  //代码中在执行btn按钮候后整个页面重绘,
        										//仅剩下div这个标签(页面和控制台均只剩下这个内容)
 btn. onclick = function() {
 document . write('<div>123</div>');
         }

2. innerHTML 创建元素

var inner = document . querySelector(' .inner' );
for(var i=0;i<=100;i++){

 inner. innerHTML += '<a href="#">百度</a>' 
 }

var arr =[]for(var i=0;i<=100;i ++){
arr .push('<a href="#">百度</a>')}
 inner.innerHTML = arr .join(' ')

3. document . createElement() 创建元素

var create = document.querySelector(' .create' );
for (var i  e;i<=100;i++){
 var a = document . createElement('a');
      create. appendChild(a); 
      }

区别!:

● 1. document . write是直接将内容写入页面的内容流,但是文档流执行完毕,则它会导致页面全部重绘
● 2. innerHTML 是将内容写入某个DOM节点,不会导致页面全部重绘

● 3. innerHTML 创建多个元素效率更高(不要拼接字符串,采取数组形式拼接), 结构稍微复杂
● 4. ereateElement()创建多个元素效率稍低一点点,但是结构更清晰

总结:不同浏览器下, innerhTMI效率要比creatElement 高

绑定事件(事件监听):

1.册事件概述:

给元素添加事件,称为注册事件或者绑定事件。
注册事件有两种方式:传统方式和方法监听注册方式

传统注册方式
●  利用on开头的事件onclick
●  <button onclick= "alert("hi~)" > </button>
● btn.onclick = function (){} 
●特点: 注册事件的**唯一性**
●同一个元素同一个事件只能设置- 个处理函数,最后注册的处理函数将会覆盖前面注册的处理函数

代码示例:

 var btns = document . querySelectorAll( ' button' );
     1.传统方式注册事件

      btns[0].onclick = function( ){      //传统方法无兼容性问题, 但只能绑定唯一事件(最后一个)}

      alert('hi');
      }

      btns [0].onclick = function() {

      alert('nice to meet you ' );
      }

2. 方法监听注册方式:

●w3c 标准推荐方式
●addEventListener()它是一 一个方法
●IE9之前的 IE不支持此方法,可使用**attachEvent()**代替
● 特点:同一个元素同一个事件可以注册多个监听器
● 按注册顺序依次执行

addEventListener事件监听方式:

eventTarget .addEventListener (type, listener[, useCapture] )

eventTarget . addEventListener ()方法将指定的监听器注册到eventTarget (目标对象)上,当该对象触发指定的事件时,就会执行事件处理函数。

该方法接收三个参数:

      ●type: 事件类型字符串,比如click. mouseover , 注意这里不要带on

      ●listener :事件处理函数,事件发生时,会调用该监听函数

      ●useCapture :可选参数,是-个布尔值,默认是false.学完DOM事件流后,我们再进一步学习

2.事件侦听注册事件addEventListener

(1) 里面的事件类型是字符串 必定加引号 而且不带on

(2)同一个元素 同一个事件可以添加多个侦听器(事件处理程序)

  eg:代码示例
       btns[1]. addEventListener( 'click'function() {
      alert(22);
      })
      btns[1]. addEventlistener( 'click', function() {
      alert(33);
		})     // 事件监听方法有兼容性问题,但可以绑定多个事件,且事件会依次执行script>


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值