4. 以下是一段js,实现了点击每一个li弹出每一个li的内容,如何优化这段代码以及给出你的优化意见 ```html <!DOCTYPE html> <html> <head> <title>笔试题</title> </head> <body> <ul id="list"> <li>项目1</li> <li>项目2</li> <li>项目3</li> <li>项目4</li> </ul> <script> var list = document.querySelectorAll('#list>li'); for(let i=0;i<list.length;i++){ list[i].onclick = function(){ alert(this.innerHTML) } } </script> </body> </html> ```
时间: 2024-02-04 16:02:21 浏览: 91
js循环给li绑定事件实现 点击li弹出其索引值 和内容的方法
可以使用事件委托来优化代码,将点击事件绑定在ul上,然后通过事件对象的target属性来获取被点击的li元素。这样可以避免给每个li元素都绑定一个点击事件,提高性能和代码可维护性。
下面是优化后的代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>笔试题</title>
</head>
<body>
<ul id="list">
<li>项目1</li>
<li>项目2</li>
<li>项目3</li>
<li>项目4</li>
</ul>
<script>
var list = document.querySelector('#list');
list.addEventListener('click', function(event) {
if (event.target.tagName === 'LI') {
alert(event.target.innerHTML);
}
});
</script>
</body>
</html>
```
使用事件委托可以减少代码量,提高性能和可维护性。
阅读全文