我进行了民意测验,并且有很多图表需要重新绘制后才能清除。我一直在寻找解决方案,而我发现的唯一方法就是重新创建画布。所以我试图将它们全部删除(删除工作正常)然后重新创建,但是由于某些原因,所有画布仅在第一个div(#chart-center)上创建。
这是我使用的代码:
$(".test-question").each(function () {
$('canvas').remove();
$('#chart-center').append("<canvas></canvas>");
});
有什么想法吗?预先感谢。
答案 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);
});