我知道我可以抓住个人身份证的元素。
无论如何,我可以将一个监听器附加到父div并传递所单击的单个跨度的ID?
<div id = "divId">
<span id="one"></span>
<span id="two"> </span>
</div>
JS
document.getElementById("two").addEventListener("click", someFunction);
您可以使用event
对象并访问其target
属性
document.getElementById("divId").addEventListener("click", someFunction);
function someFunction(event) {
console.log(event.target.id);
}
<div id="divId">
<span id="one">one</span>
<span id="two"> two</span>
</div>
如果用户点击了一个节点,该节点是用户想要测试的元素的子节点,那么e.target
将是一个不同的节点。现在检查这个的合理方法是在文档级别监听并迭代路径(或使用一些委托库,其中有很多):
向文档添加一个事件侦听器:
const isOnId = (path,id) => path.some(element => element.id === id);
document.addEventListener('click',function(e) {
if(isOnId(e.path,'two')) {
//you clicked on or in element with an id two
} else {
//you clicked on something else
}
});