jQuery.html()赢得't替换javascript图表

jQuery .html() won't replace javascript chart

本文关键字:替换 javascript 图表 html 赢得 jQuery      更新时间:2023-09-26

我正在使用jQuery的ajax调用,根据他们对下拉菜单的选择,从Dojo工具包创建一个图表。问题是,它没有替换图表,而是向下推并显示上面的下一个图表。如果我用文本切换图表,它会正确地替换文本。

$('#listID').on('change',function()
{
    var input = $(this).attr("value");
    $.post("helper.php", { input: input, username: username }, function(data){
        $('#chart').html(data.chart);
    }, "json");
});
<div id="chart"></div>
<div id="chartOne" style="width: 400px; height: 240px; "></div>

正在插入的图表:

<script>
require(["dojox/charting/Chart", "dojox/charting/axis2d/Default", "dojox/charting/plot2d/StackedAreas", "dojox/charting/themes/Wetland" , "dojo/ready"],
  function(Chart, Default, StackedAreas, Wetland, ready){
    ready(function(){
      var c = new Chart("chartOne");
  c.addPlot("default", {type: StackedAreas, tension:3})
    .addAxis("x", {fixLower: "major", fixUpper: "major"})
    .addAxis("y", {vertical: true, fixLower: "major", fixUpper: "major", min: 0})
    .setTheme(Wetland)
    .addSeries("Series A", [1, 2, 0.5, 1.5, 1, 2.8, 0.4])
    .addSeries("Series B", [2.6, 1.8, 2, 1, 1.4, 0.7, 2])
    .addSeries("Series C", [6.3, 1.8, 3, 0.5, 4.4, 2.7, 2])
    .render();
    });
});
</script>

之所以会发生这种情况,是因为您正在渲染脚本标记(到#chart),而脚本标记正在渲染到第二个位置(#chartOne),第二个地方永远不会被清除。