我有:
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] 正在显示。
如何在这样的变量中插入变量?
答案 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)
逐步:
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 ?>],
而且效果很好。