我正确地从html获取canvas tag
但是当我尝试添加一个eventlistener时,控制台会返回Uncaught TypeError: undefined is not a function
。我无法理解原因。
var x = document.getElementsByTagName('canvas');
console.log(x); //print correctly the element : [canvas, item: function, namedItem: function]
x.addEventListener("click", prova);//Uncaught TypeError: undefined is not a function
function prova( event ) {
console.log("prova");//
};
答案 0 :(得分:4)
执行document.getElementsByTagName("canvas")[0]
getElementsByTagName
返回一个HTMLCollection(有点像数组),而addEventListener
仅适用于元素,因此您需要选择具有正确索引的元素。
替代方案是document.querySelector("canvas")
,它将返回一个元素。
答案 1 :(得分:3)
getElementsByTagName
返回一个HTML元素数组,因此您必须定义一个索引。在HTML的基本示例中,您可以假设您只有一个<canvas>
标记,因此您可以使用getElementsByTagName("canvas")[0]
。