<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);
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答897 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
通过事件委托,
e.target
获取真正触发事件的元素,而e.currentTarget
是定义事件监听的元素,也就是ul
e.target
获取的是<a>
,判断是否是<a>
,如果是<a>
,移除<a>
的parentNode(li
)即可。因为你是用的
<a>
触发点击,所以需要使用e.preventDefault()
阻止默认事件,否则会跳转