<ul id="list">
<li>001<a href="">删除</a></li>
<li>002<a href="">删除</a></li>
<li>003<a href="">删除</a></li>
</ul>
//如上,点击删除删除对应的li,
document.getElementById("list").addEventListener("click",function(e){
//就在这里卡住了,不知道怎么获取到对应li;
},false);
<ul id="list">
<li>001<a href="">删除</a></li>
<li>002<a href="">删除</a></li>
<li>003<a href="">删除</a></li>
</ul>
//如上,点击删除删除对应的li,
document.getElementById("list").addEventListener("click",function(e){
//就在这里卡住了,不知道怎么获取到对应li;
},false);
<ul id="list">
<li>001<a href="">删除</a></li>
<li>002<a href="">删除</a></li>
<li>003<a href="">删除</a></li>
</ul>
//如上,点击删除删除对应的li,
document.getElementById("list").addEventListener("click",function(e){
var target = e.target;
if(target.nodeName.toLowerCase() !== 'li') return; // 如果点击的不是li则不做处理
target.parentNode.removeChild( target );
},false);
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
通过事件委托,
e.target
获取真正触发事件的元素,而e.currentTarget
是定义事件监听的元素,也就是ul
e.target
获取的是<a>
,判断是否是<a>
,如果是<a>
,移除<a>
的parentNode(li
)即可。因为你是用的
<a>
触发点击,所以需要使用e.preventDefault()
阻止默认事件,否则会跳转