2011-04-22 63 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