2010-05-27 26 views
141

的背景下,我有以下工作代碼:的jQuery相當於得到一個帆布

ctx = document.getElementById("canvas").getContext('2d'); 

有什麼辦法重新寫它使用$?這樣做失敗:

ctx = $("#canvas").getContext('2d'); 
+11

aw爲什麼要投票? – Claudiu 2010-05-27 22:52:14

+6

現在你有很多upvotes :) – 2014-12-23 18:45:50

+0

因爲有些人忘記了可以問問題;) – 2017-12-16 23:11:01

回答

244

嘗試:

$("#canvas")[0].getContext('2d'); 

jQuery的暴露了實際的DOM元素在數字指標,在這裏你可以進行正常的JavaScript/DOM功能。

+0

我甚至沒有找到這個,但我希望我以前知道這一點,OP你是一個聖人以及馬特。你爲我節省了很多時間。 – munchschair 2016-09-03 00:18:27

+0

哇。哈,首先想到的是,我認爲這樣做效果不好。 – Eon 2017-03-18 23:08:00

11

我也看到,它通常優選使用獲得(0)來引用一個jQuery目標爲HTML元素:因爲jQuery的作爲返回null

var myCanvasElem = $("#canvas").get(0); 

也許是爲了避免任何潛在的空對象引用對象,但是從不用彷徨元件工作(0)可能不會失敗,因此默默的......你可以很容易地檢查畫布首次發現獲得(0)像

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

該腳本之前找到之前「帆布」

$(document).ready(function() { 
    ctx = $("#canvas"); 
});