在使用event.target时,元素id不能直接获取的原因是event.target返回的是触发事件的元素节点,而不是具体的元素id。event.target属性返回的是一个指向触发事件的元素的引用。通过该属性可以获取到元素的相关信息,比如标签名、类名、属性等,但是无法直接获取元素的id属性。
要获取元素的id,可以使用event.target属性的parentNode属性来获取触发事件的元素的父节点,然后再通过父节点的id属性来获取元素的id。
例如,假设我们有以下HTML代码:
<div id="myDiv">
<p id="myParagraph">Hello World!</p>
</div>
如果我们想要在点击p元素时获取其父元素div的id,可以使用以下JavaScript代码:
document.getElementById('myParagraph').addEventListener('click', function(event) {
var parentId = event.target.parentNode.id;
console.log(parentId); // 输出:myDiv
});
在这个例子中,我们给p元素添加了一个点击事件的监听器。当点击p元素时,通过event.target属性获取到p元素的引用,然后通过parentNode属性获取到其父元素div的引用,最后通过id属性获取到div的id值。
注意,如果点击的元素本身就是目标元素(没有包含在其他元素内),那么event.target属性和event.currentTarget属性将是相同的,可以直接通过event.target.id来获取元素的id。
总结一下,使用event.target时,元素id不能直接获取,但可以通过event.target的父节点来获取元素的id。
领取专属 10元无门槛券
手把手带您无忧上云