点击li标签弹出对应的内容
题目:点击li标签,在控制台输出对应的内容
DOM结构
<ul id="ul"> <li>1</li> <li>2</li> <li>3</li> <li>4</li> </ul>
方法一:批量绑定点击事件
1 2 3 4 5 6 7 8 9 10 | //获取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); } } |
方法二:事件代理
1 2 3 4 5 6 7 8 | 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操作少,性能更好;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!