如何使用{}将var包含在var中

时间:2019-04-24 13:16:38

标签: javascript variables

我有:

      var lineArea = new Chartist.Line('#line-area', {
      labels: ['a', 'b', 'c', 'd'], 
~break

我必须用var替换abcd:

var mondays = document.getElementById('mondays').innerHTML; alert(mondays); var lineArea = new Chartist.Line('#line-area', { labels: [{mondays}], series: [ [0, 20, 10, 45, 20, 36, 21, 0], [0, 5, 22, 14, 32, 12, 28, 0] ] }, { low: 0, showArea: true, fullWidth: true, onlyInteger: true, axisY: { low: 0, scaleMinSpace: 50, }, axisX: { showGrid: false } });

但是,这(以及我盲目尝试过的其他方法)不起作用。实际上会导致 [object Object]  正在显示。

如何在这样的变量中插入变量?

3 个答案:

答案 0 :(得分:0)

不要尝试将字符串文字传递给数组声明,只需在innerHTML内部拆分字符串即可生成数组。这是最简单的解决方案,您可以将编码的JSON存储在innerHTML内并进行解析,但这似乎要简单得多。

//Assume innerHTML = "a,b,c'd"
var monday = document.getElementById('mondays').innerHTML;    

//Split the string based of comma to generate an array of strings
var mondaysArr = monday.split();

//Pass in the array
var lineArea = new Chartist.Line('#line-area', mondaysArr);

答案 1 :(得分:0)

逐步:

  1. 获取内部html
  2. 以逗号分隔
  3. 删除报价

text = document.getElementById('mondays').innerHTML
array = text.split(', ')

// !!
labels = array.map(e => e.split("'").join(""))

console.log('text', text)
console.log('array', array)

// !!
console.log('labels', labels)
<div id='mondays' style='display: none;'>'04/29', '05/06', '05/13', '05/20', '05/27', '06/03', '06/10', '06/17', '06/24'</div>

答案 2 :(得分:0)

我自己做的。 我会用我的解决方案让您感到厌烦... 最流畅的解决方案: 我将整个内容放入一个PHP文件中,因为无论如何该字符串都是在PHP中生成的。另外,由于我隐藏在div中的PHP变量已被称为“ $ mondays”,因此我要做的就是: labels: [<?php echo $mondays ?>], 而且效果很好。