jQuery相当于获取Canvas的上下文

Cla*_*diu 150 html javascript jquery html5 canvas

我有以下工作代码:

ctx = document.getElementById("canvas").getContext('2d');
Run Code Online (Sandbox Code Playgroud)

有没有办法重新编写使用$?这样做失败了:

ctx = $("#canvas").getContext('2d');
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 272

尝试:

$("#canvas")[0].getContext('2d');
Run Code Online (Sandbox Code Playgroud)

jQuery在数字索引中公开实际的DOM元素,您可以在其中执行常规的JavaScript/DOM函数.


OG *_*ean 12

我还看到,通常首选使用.get(0)将jquery目标作为HTML元素引用:

var myCanvasElem = $("#canvas").get(0);
Run Code Online (Sandbox Code Playgroud)

也许是为了帮助避免任何潜在的空对象引用,因为jquery将null作为对象返回,但是使用来自.get(0)的元素可能不会如此默默地失败...您可以轻松地检查是否先找到画布.get(0) ) 喜欢

if( $("#canvas").length ) ctx = $("#canvas").get(0).getContext('2d');
else console.log('Error: Canvas not found with selector #canvas');
Run Code Online (Sandbox Code Playgroud)