function recordData(){
var element = document.getElementsByClassName("bubble");
for(var i = 0; i < element.length; i++){
element[i].addEventListener("click", function(){
var id = element[i].attributes.id.value;
var x_cordinate = element[i].children[2].attributes.x.value;
var y_cordinate = element[i].children[2].attributes.y.value;
var keyword = element[i].children[0].textContent;
clicked_elements.push({
id: id,
x_cordinate: x_cordinate,
y_cordinate: y_cordinate,
keyword: keyword
})
}, false);
}
}
当我尝试单击 html 中的元素时,它显示错误“未捕获的类型错误:无法读取未定义的属性‘属性’”。我无法在 addEventListener 方法中访问该特定元素的 id 和其他属性。如果我需要记录点击的内容,请解释我在这里做错了什么。
最佳答案
您不能在 addEventListener 回调中使用 i
,因为它将在 for
循环结束后执行。
使用 this
而不是 elements[i]
来获取闭包内的当前元素。
关于javascript - 无法将事件处理程序注册到 javascript 中的元素数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37204989/