为什么在为canvas声明变量时添加[0]?

时间:2016-01-13 10:24:57

标签: javascript jquery canvas

在此代码中:

var canvas = $("#myCanvas")[0];
var ctx = canvas.getContext("2d");

为什么我们必须添加[0]来识别画布?这对我来说有点混乱,因为当有多个具有相同名称的元素并且我们需要解决特定的元素时,通常会添加[n]。但是id只能引用一个唯一元素。

2 个答案:

答案 0 :(得分:3)

此语法用于从jQuery对象检索底层画布DOMElement,以便可以使用$(function () { $("#search").keyup(function () { $.ajax({ type: "POST", url: "Ajax/searchDomain.action.php", data: { domain: $('input[name="domain"]').val(), width: $(window).width() }, success: function(data) { $("#container_domains").html(data).show(); } }); }); }); 方法(jQuery对象没有)。

getContext()

另见:

What is a jQuery object

canvas API reference

答案 1 :(得分:0)

jQuery 总是返回类似于数组的对象,即使您使用(唯一)id作为选择器。

在你的情况下,[0]将返回第一个(也是唯一的)实际元素。