2011-04-22 89 views
1

我打一个初学者教程的帆布如何获得一个DOM元素到jQuery变量?

我在想,如果我可以改变的(这从教程作品直):

 <script> 
     $(document).ready(function() { 
      var can = document.getElementById("myCanvas"); 
      var ctx = canvas.getContext("2d"); 
      ctx.fillRect(50, 25, 150, 100); 
     }); 
    </script> 

到这一点:

$(document).ready(function() { 
    can = $("mycanvas"); 
    var ctx = canvas.getContext("2d"); 
    ctx.fillRect(50, 25, 150, 100); 
}); 

或者甚至到

var ctx=$("mycanvas").getContext("2d"); 
ctx.fillRect(50,25,150,100); 

东西不起作用我无法弄清楚什么? 我尝试添加.VAL()正如我在无数文章

can=$("#mycanvas").val() 

看到,也.atrr()

can=$("mycanvas").attr("id") 

但无济于事 我到底做错了什么?或者它可能与jQuery不可能? 我很乐意为此提供任何帮助。

回答

4

它是.attr('id')而不是.atrr('id')

从一个jQuery对象获得DOM节点,使用数组下标运算符([])或.get()方法:

var can = $('#mycanvas')[0]; // or: 
var can = $('#mycanvas').get(0); 
+0

,现在它似乎工作..不知道错之前是什么 - 其实这也适用:var ctx = $(“#mycanvas”)[0] .getContext(“2d”); 和另一个链接,我刚刚发现相同的问题http://stackoverflow.com/questions/2925130/jquery-equivalent-of-getting-the-context-of-a-canvas/2925139#2925139 – alonisser 2011-04-22 13:55:21