如何在多个div中重新创建画布?

时间:2018-09-22 14:46:34

标签: javascript jquery

我进行了民意测验,并且有很多图表需要重新绘制后才能清除。我一直在寻找解决方案,而我发现的唯一方法就是重新创建画布。所以我试图将它们全部删除(删除工作正常)然后重新创建,但是由于某些原因,所有画布仅在第一个div(#chart-center)上创建。

这是我使用的代码:

$(".test-question").each(function () {  
    $('canvas').remove();  
    $('#chart-center').append("<canvas></canvas>");  
});

有什么想法吗?预先感谢。

1 个答案:

答案 0 :(得分:0)

您的解决方案是逐步删除它们,然后找到内部的canvas并在那里替换。

$(".test-question").each(function () {  
    $(this).find('canvas').remove();  
    $(this).find("#chart-center").append("<canvas></canvas>"); 
});

您也不应该使用相同的ID:而是使用类!

另一种解决方案是像这样清除画布:

$(".test-question").each(function () {  
    let canvas = $(this).find("canvas").get(0);
    let c = canvas.getContext('2d');
    c.clearRect(0,0,canvas.width,canvas.height);
});