【发布时间】:2016-01-13 10:24:57
【问题描述】:
在这段代码中:
var canvas = $("#myCanvas")[0];
var ctx = canvas.getContext("2d");
为什么我们必须添加[0] 来识别画布?这对我来说有点令人困惑,因为[n] 通常在有多个同名元素并且我们需要处理特定的元素时添加。但是一个 id 只能引用一个唯一的元素。
【问题讨论】:
-
jQuery 选择器可以返回多个对象,因此它们总是返回看起来像数组的东西。恕我直言,最好只使用
canvas = document.getElementById('myCanvas') -
... 或
document.querySelector("#myCanvas")如果您需要更复杂的选择器。 -
因为要使用像 getContext() 这样的 javascript 方法,您需要返回实际的 dom 元素而不是 jQuery 数组。例如,执行 $("body").innerHTML 会给你 undefined 但 $("body")[0].innerHTML 会返回 body 的内容。
标签: javascript jquery canvas