点击li标签弹出对应的内容

题目:点击li标签,在控制台输出对应的内容

DOM结构

<ul id="ul">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>

 

方法一:批量绑定点击事件

	//获取dom
        var list = document.getElementById('ul');
        var li = list.getElementsByTagName('li');
        //遍历li标签
        for(let i = 0; i < li.length; i++){
        	//批量添加点击事件
            li[i].onclick = function () {
                console.log(i+1); 
            }
        }

  

方法二:事件代理

  var myul = document.getElementById('ul');
        //给父元素添加点击事件
        myul.onclick = function(e){ 
        	//e.target表示触发的事件源,有就是点击的li标签
            if( e.target.nodeName.toLowerCase() == 'li' ){
                console.log(e.target.innerHTML);
            }
        }

  

  • 方法一:批量添加点击事件,用到了大量dom操作,性能开销大;
  • 方法二:使用事件代理,通过给父元素绑定点击事件,点击子元素,冒泡给父元素,父元素通过e.target感知事件源进行操作,dom操作少,性能更好;
posted @ 2022-08-05 17:36  奶包迷了鹿  阅读(179)  评论(0编辑  收藏  举报