我的模拟结果是从包含字符串和数值的REST服务获得的。我能够解析数字(x_water
),但是对字符串(x_date
)有困难。下面是我的方法,我想我可能错误地使用HTML5 data-val
属性来存储字符串。那么有人能给我一些建议吗?
我的数据如下所示
x_water
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 22.1, 0.0545, 0.000171, 3.71e-05, 3.61e-05, 3.54e-05, 3.48e-05, 3.42e-05, 3.35e-05, 3.3e-05, 3.24e-05, 3.18e-05, 3.12e-05, 3.06e-05, 3.01e-05, 2.95e-05, 2.9e-05, 2.85e-05, 2.79e-05, 2.74e-05, 2.69e-05, 2.64e-05, 2.59e-05, 2.54e-05, 2.5e-05, 2.45e-05, 2.41e-05, 2.36e-05, 2.32e-05, 2.28e-05, 2.23e-05, 2.19e-05]
x_date
[' 1/ 1/1961', ' 1/ 2/1961', ' 1/ 3/1961', ' 1/ 4/1961', ' 1/ 5/1961', ' 1/ 6/1961', ' 1/ 7/1961', ' 1/ 8/1961', ' 1/ 9/1961', ' 1/10/1961', ' 1/11/1961', ' 1/12/1961', ' 1/13/1961', ' 1/14/1961', ' 1/15/1961', ' 1/16/1961', ' 1/17/1961', ' 1/18/1961', ' 1/19/1961', ' 1/20/1961', ' 1/21/1961', ' 1/22/1961', ' 1/23/1961', ' 1/24/1961', ' 1/25/1961', ' 1/26/1961', ' 1/27/1961', ' 1/28/1961', ' 1/29/1961', ' 1/30/1961', ' 1/31/1961', ' 2/ 1/1961', ' 2/ 2/1961', ' 2/ 3/1961', ' 2/ 4/1961', ' 2/ 5/1961', ' 2/ 6/1961', ' 2/ 7/1961', ' 2/ 8/1961', ' 2/ 9/1961', ' 2/10/1961', ' 2/11/1961', ' 2/12/1961']
在python中,我把它们放在一个隐藏的html表中,如下所示:
html = html + """
<table class="results" width="550" border="1">
<tr>
<th scope="col" colspan="3"><div align="center">Results</div></th>
</tr>
<tr style="display: none">
<td id="x_water" data-val='%s'></td>
<td id="x_date" data-val='%s'></td>
</tr>
</table><br>"""%(x_water,x_date)
最后一步是使用jQuery来获取这两个变量:
var x_water = $.parseJSON($('#x_water').attr('data-val'));
var x_date = $.parseJSON($('#x_date').attr('data-val'));
我检查了生成的html文件的来源:
<td id="x_water" data-val='[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 22.1, 0.0545, 0.000171, 3.71e-05, 3.61e-05, 3.54e-05, 3.48e-05, 3.42e-05, 3.35e-05, 3.3e-05, 3.24e-05, 3.18e-05, 3.12e-05, 3.06e-05, 3.01e-05, 2.95e-05, 2.9e-05, 2.85e-05, 2.79e-05, 2.74e-05, 2.69e-05, 2.64e-05, 2.59e-05, 2.54e-05, 2.5e-05, 2.45e-05, 2.41e-05, 2.36e-05, 2.32e-05, 2.28e-05, 2.23e-05, 2.19e-05]'></td>
<td id="x_date" data-val='[' 1/ 1/1961', ' 1/ 2/1961', ' 1/ 3/1961', ' 1/ 4/1961', ' 1/ 5/1961', ' 1/ 6/1961', ' 1/ 7/1961', ' 1/ 8/1961', ' 1/ 9/1961', ' 1/10/1961', ' 1/11/1961', ' 1/12/1961', ' 1/13/1961', ' 1/14/1961', ' 1/15/1961', ' 1/16/1961', ' 1/17/1961', ' 1/18/1961', ' 1/19/1961', ' 1/20/1961', ' 1/21/1961', ' 1/22/1961', ' 1/23/1961', ' 1/24/1961', ' 1/25/1961', ' 1/26/1961', ' 1/27/1961', ' 1/28/1961', ' 1/29/1961', ' 1/30/1961', ' 1/31/1961', ' 2/ 1/1961', ' 2/ 2/1961', ' 2/ 3/1961', ' 2/ 4/1961', ' 2/ 5/1961', ' 2/ 6/1961', ' 2/ 7/1961', ' 2/ 8/1961', ' 2/ 9/1961', ' 2/10/1961', ' 2/11/1961', ' 2/12/1961']'></td>
我的Chrome JS控制台没什么帮助,只是抱怨:
Uncaught SyntaxError: Unexpected end of input
答案 0 :(得分:1)
您的报价未正确转义。 查看此页面
How to properly escape quotes inside html attributes?
这里还有一个正确使用的小提琴
http://jsfiddle.net/earlonrails/LUDh8/3/
<td id="x_water" data-val='[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 22.1, 0.0545, 0.000171, 3.71e-05, 3.61e-05, 3.54e-05, 3.48e-05, 3.42e-05, 3.35e-05, 3.3e-05, 3.24e-05, 3.18e-05, 3.12e-05, 3.06e-05, 3.01e-05, 2.95e-05, 2.9e-05, 2.85e-05, 2.79e-05, 2.74e-05, 2.69e-05, 2.64e-05, 2.59e-05, 2.54e-05, 2.5e-05, 2.45e-05, 2.41e-05, 2.36e-05, 2.32e-05, 2.28e-05, 2.23e-05, 2.19e-05]'></td>
<td id="x_date" data-val="[ "1/ 1/1961", " 1/ 2/1961", " 1/ 3/1961", " 1/ 4/1961", " 1/ 5/1961", " 1/ 6/1961", " 1/ 7/1961", " 1/ 8/1961", " 1/ 9/1961", " 1/10/1961", " 1/11/1961", " 1/12/1961", " 1/13/1961", " 1/14/1961", " 1/15/1961", " 1/16/1961", " 1/17/1961", " 1/18/1961", " 1/19/1961", " 1/20/1961", " 1/21/1961", " 1/22/1961", " 1/23/1961", " 1/24/1961", " 1/25/1961", " 1/26/1961", " 1/27/1961", " 1/28/1961", " 1/29/1961", " 1/30/1961", " 1/31/1961", " 2/ 1/1961", " 2/ 2/1961", " 2/ 3/1961", " 2/ 4/1961", " 2/ 5/1961", " 2/ 6/1961", " 2/ 7/1961", " 2/ 8/1961", " 2/ 9/1961", " 2/10/1961", " 2/11/1961", " 2/12/1961"]"></td>
答案 1 :(得分:0)
如果您在页面加载时知道数据,我建议您直接在javascript中将其作为对象字面输出:
html = html + """
<script type="javascript">
var x_water = %s;
var x_date = %s;
</script>"""%(x_water,x_date);