TypeError: getContext 不是 JavaScript 中的函数
TypeError: getContext is not a function in JavaScript
当对不是DOM 元素getContext()
的值调用该方法时,会发生“TypeError: getContext is not a function”错误
。canvas
要解决该错误,请确保仅对
元素调用该getContext
方法。canvas
下面是错误如何发生的示例。
const canvas = document.getElementsByClassName('canvas'); console.log(canvas); // 👉️ [canvas.canvas] // ⛔️ TypeError: getContext is not a function const ctx = canvas.getContext('2d');
我们在 a而不是元素上调用了该getContext
方法。NodeList
canvas
只在元素上调用getContext
方法canvas
要解决该错误,console.log
您调用
getContext()
方法的值并确保它是一个canvas
元素。
这是一个完整的工作示例。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> </head> <body> <canvas class="canvas" width="500" height="500"></canvas> <!-- ✅ Your JS script here ✅ --> <script src="index.js"></script> </body> </html>
请注意,在声明所有 DOM 元素之后,我们将 JS script 标签放在 body 标签的底部。
canvas
元素。这是相关的 JavaScript 代码。
const canvas = document.getElementsByClassName('canvas'); console.log(canvas); // 👉️ [canvas.canvas] const ctx = canvas[0].getContext('2d'); console.log(ctx); // 👉️ CanvasRenderingContext2D
该getElementsByClassName
方法返回一个NodeList
而不是 DOM 元素。
我们必须访问索引处的元素0
以获取 DOM 元素,我们在该元素上调用该getContext
方法。
console.log
the value you’re calling the getContext
method on and make sure it’s a canvas
element.If it’s a jQuery object, you have to convert it to a DOM element before calling
the getContext
method.
const canvas = $('.canvas'); console.log(canvas); // 👉️ [canvas.canvas] const ctx = canvas[0].getContext('2d'); console.log(ctx); // 👉️ CanvasRenderingContext2D
If you still get the error, make sure you aren’t misspelling getContext
(method names are case-sensitive).
Conclusion #
The “TypeError: getContext is not a function” error occurs when the
getContext()
method is called on a value that is not a canvas
DOM element.
To solve the error, make sure to only call the getContext
method on canvas
elements.