1

重複の可能性:
Canvas のコンテキストを取得するのと同等の jQuery

私の質問は次のとおりです。

1) コメントされたコードが上記のように動作しないのはなぜですか (つまり、なぜエラーがスローされるのですか)?

$(function () {
  $('#ex4').append('<canvas class=can ></canvas>');
  $('#ex4').append('<canvas class=can ></canvas>');
  $('#ex4').append('<canvas class=can ></canvas>');

  $('#ex4 canvas').each(function (index, element) {
    $(this).attr("width", "125")
    $(this).attr("height", "50")

    var context = element.getContext("2d");
    //var context = $(this).getContext("2d");   error

    context.strokeStyle = "red";
    context.fillStyle = "#999900";
    context.font = "30px Arial";
    context.fillText("HTML5", 0, 35);
  });
})

2) 以下の類似コードのエラー (おそらく上記と同じ) を解決するにはどうすればよいですか?

$.each(data[0], function (i) {
  $('#content').append('<canvas id=' + i + ' class=can ></canvas>');
  $('#content #' + i).attr("width", "125")
  $('#content #' + i).attr("height", "50")

  //var context = $('#content #'+i).getContext("2d"); error

})
4

2 に答える 2

1

instead of //var context = $(this).getContext("2d");

use: var context = $(this)[0].getContext("2d");

and instead of : //var context = $('#content #'+i).getContext("2d"); error

use: var context = $('#content #'+i)[0].getContext("2d"); error

于 2013-02-04T13:27:19.170 に答える