为了账号安全,请及时绑定邮箱和手机立即绑定

如何动态引用对象变量?

如何动态引用对象变量?

白衣非少年 2021-09-30 15:07:09
我在同一页面上创建多个图表,现在我想要一个智能功能来更新单个图表或所有图表当我对对象名称进行硬编码时它工作正常,但我希望能够从执行它的按钮中获取对象名称<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 不是一个对象。如果我在调用中对对象名称进行硬编码,它会起作用。
查看完整描述

2 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

或者将您的图表添加到您可以访问其键的对象:


var charts = {};

charts.populationIncrease = new Chart(...);


function updateChart(chartName, value) {

    charts[chartName].value = value;

}


updateChart('populationIncrease', { ... });


查看完整回答
反对 回复 2021-09-30
  • 2 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信