使用jquery从动态添加的画布获取上下文(2d)

使用jquery从动态添加的画布获取上下文(2d),jquery,Jquery,这里有点新手,可能超出了我的深度,但我在一些导入的xml上循环,用div附加一个容器,然后用画布附加它,然后我尝试画进画布。我得到的只是“getContext()不是函数”感谢您的指导 var newCanvas = $('<canvas/>', {'class':'cnvsClass'}, {'id': 'theCanvas'}) .width(215) .height(217); $("#innerWrapper") .append($('&

这里有点新手,可能超出了我的深度,但我在一些导入的xml上循环,用div附加一个容器,然后用画布附加它,然后我尝试画进画布。我得到的只是“getContext()不是函数”感谢您的指导

var newCanvas = 
    $('<canvas/>', {'class':'cnvsClass'}, {'id': 'theCanvas'})
    .width(215)
    .height(217);


$("#innerWrapper")
    .append($('<div/>', {'class': 'wrapper'})
        .append($(newCanvas)));



// Have tried  $('<canvas/>', $('.cnvsClass'), $("#theCanvas")
// I've added [0] after the selector but all I get is 
// TypeError: $(...).getContext is not a function
var ctx = $("#theCanvas").getContext("2d");

var image = new Image();
image.src = "AtlasSheet.png";  
$(image).load(function() {
    ctx.drawImage(image, 830,1165, 215, 217, 0, 0, 215, 217);    
});
var newCanvas=
$(“”,{class':'cnvsClass'},{id':'theCanvas'})
.宽度(215)
.身高(217);
$(“#内部包装”)
.append($('',{'class':'wrapper'})
.append($(newCanvas));
//已经尝试过$('',$('.cnvsClass'),$(“#theCanvas”)
//我在选择器后面添加了[0],但得到的结果是
//TypeError:$(…)。getContext不是函数
var ctx=$(“#theCanvas”).getContext(“2d”);
var image=新图像();
image.src=“AtlasSheet.png”;
$(图像).load(函数(){
drawImage(图像,8301165、215、217、0、0、215、217);
});

您需要本机DOM对象来执行此操作

试试这个

var ctx = $("#theCanvas").get(0).getContext("2d");

谢谢@qqq尝试了这个方法,我得到了$(…)。get(…)是未定义的-我已经硬编码了它,它可以很好地使用:canvas=document.getElementById(“newCanvas”);var ctx=canvas.getContext(“2d”);var image=new image();image.src=“AtlasSheet.png”$(image).load(函数(){ctx.drawImage(图像,83011652152170,0,0,215217);});未定义,因为您在创建时没有给出
id
。更改您的代码:
$(“”,{'class':'cnvsClass','id':'theCanvas'})
就像我说的-完全超出了我的深度!但是非常感谢@qq!它起作用了!虽然我感到困惑,但我知道当没有指定尺寸时画布的大小会恢复为2:1的比例,这就是它所做的。我试过$(“,{'class':'cnvsClass','id':'theCanvas','width':'215','height':'217')-有什么想法吗?