在JavaScript中,当使用事件监听器时,this
关键字通常指向触发事件的元素。如果你发现 this.id
成为了一个包含所有点击元素ID的数组,这通常意味着事件监听器被错误地设置或者代码逻辑有误。
this
关键字:在JavaScript中,this
的值取决于函数的调用方式。在事件处理函数中,this
通常指向触发事件的元素。确保事件监听器正确地指向单个元素,并且 this.id
只返回当前触发事件的元素的ID。
假设我们有一个列表,每个列表项都有一个唯一的ID,我们希望在点击时获取这个ID:
<ul id="itemList">
<li id="item1">Item 1</li>
<li id="item2">Item 2</li>
<li id="item3">Item 3</li>
</ul>
正确的JavaScript代码应该是这样的:
document.getElementById('itemList').addEventListener('click', function(event) {
if (event.target.tagName === 'LI') {
console.log(event.target.id); // 这将正确输出被点击的<li>元素的ID
}
});
在这个例子中,我们使用了事件委托,监听的是父元素 ul
的点击事件。当点击任何一个 li
元素时,event.target
将指向被点击的 li
元素,因此 event.target.id
将返回正确的ID。
this
或 event.target
。通过上述方法,你可以确保 this.id
或 event.target.id
正确地反映单个元素的ID,而不是一个数组。
领取专属 10元无门槛券
手把手带您无忧上云