首页 > 解决方案 > 在元素 onclick 上更改 Javascript Var

问题描述

全部,

我正在尝试更改一个 Javascript var,该 var 用于根据单击元素在图表上填充数据,但似乎无法使其正常工作。任何人都可以帮忙吗?

我有下面的变量,每当我单击 html 元素时,我想在图表上使用下面的数组。

var monthActualLWDC = [12,54,65,74,23,47,75,23,57,65,45,33] 

元素,

<a id="btn2" onclick="changeTheVariable()" value="monthActualLWDC" class="ui labeled button"></a>

功能,

  function changeTheVariable() {
     var chartdata = document.getElementById("btn2").value;
  }

所以当插入"chartdata"图表时,它应该显示"monthActualLWDC"

 new Chart(document.getElementById("mixed-chart"), {
            type: 'bar',
            data: {
              labels: ["Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "YTD", "P.FY"],
              datasets: [{
                  label: "Month Actual",
                  type: "line",
                  borderColor: "#002db3",
                  data: chartdata,
                  fill: false
                }, {
                  label: "Prev. Y. Month Actual",
                  type: "line",
                  borderColor: "#000d33",
                  data: monthActualPYLWD,
                  fill: false
                }, {
                  label: "Goal",
                  type: "line",
                  borderColor: "#e60000",
                  data: goalLWD,
                  fill: false
                }, {
                  label: "YTD & P.Fiscal Year",
                  type: "bar",
                  backgroundColor: "rgba(0,0,0,0.5)",
                  data: ytdpfyLWD,
                },
              ]
            },
            options: {
              title: {
                display: true,
                text: 'CDC - Champaign Distribution Center - KPI'
              },
              legend: { display: true }
            }
        });

我不知道我做错了什么......需要帮助。

标签: javascriptonclickonchangevar

解决方案


输入的值只是一个字符串,它不会自动被评估为变量。如果要使用字符串名称访问数据,则应将其放入属性名称为字符串的对象中。

var myData = {
    monthActualLWDC = [12,54,65,74,23,47,75,23,57,65,45,33]
}

然后您可以将该值用作对象的索引:

function changeTheVariable() {
    var chartdata = mYData[document.getElementById("btn2").value];
    // code here that uses chartdata to display the chart
}

推荐阅读