如何动态引用对象变量?

我在同一页面上创建多个图表,现在我想要一个智能功能来更新单个图表或所有图表


当我对对象名称进行硬编码时它工作正常,但我希望能够从执行它的按钮中获取对象名称


<button class="update" name="prodChart1" funtionName="f_A_GetTotalWorkedHours"> Test</button>


var prodChart1 = document.getElementById('ProdChart1');

var prodChart1 = new Chart( prodChart1, {

  type: "line",

  data: <%=f_A_GetTotalWorkedHours(Dateadd("d",-2,Date), Date, 48, Line, "")%>,

  options: {

        color: 'red',

        scales: {

            yAxes: [{

                ticks: {

                    beginAtZero: true

                }

            }]

        }

    }

});



$(".update").click(function(){  

    UpdateChart($(this).attr("name"),"") 

});


function UpdateChart(chartName, aFunction) {

    $.ajax({

        type: 'POST', //post method

        url: 'AnalyticsAPI.asp?',

        dataType: "text",

        data: {requestParam: 'f_A_GetTotalWorkedHours|'+ getParam()[0] +'|'+ getParam()[1] +'|48' },

        success: function (result, textStatus, jqXHR)

        {

            data3= result; 

            chartName.config.data = JSON.parse(data3);

            chartName.update();


        },  

        error: function (xhr, ajaxOptions, thrownError) {

       // alert(xhr.status);

        alert(thrownError);

      }

    });

};

所以“更新”函数应该获取现有图表对象的名称,对象名称是按钮名称属性的一部分。我得到的错误是“UpdateChart(chartName, aFunction)”chartname 不是一个对象。如果我在调用中对对象名称进行硬编码,它会起作用。


白衣非少年
浏览 187回答 2
2回答

白猪掌柜的

或者将您的图表添加到您可以访问其键的对象:var charts = {};charts.populationIncrease = new Chart(...);function updateChart(chartName, value) {&nbsp; &nbsp; charts[chartName].value = value;}updateChart('populationIncrease', { ... });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript