1

我的模拟结果是从包含字符串和数值的 REST 服务中获取的。我能够解析数字(x_water),但字符串( )有困难x_date。下面是我的方法,我想我在使用 HTML5data-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 
4

2 回答 2

1

您的报价没有正确转义。看看这个页面

如何正确转义html属性中的引号?

这里还有一个正确使用的小提琴

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="[ &quot;1/ 1/1961&quot;, &quot; 1/ 2/1961&quot;, &quot; 1/ 3/1961&quot;, &quot; 1/ 4/1961&quot;, &quot; 1/ 5/1961&quot;, &quot; 1/ 6/1961&quot;, &quot; 1/ 7/1961&quot;, &quot; 1/ 8/1961&quot;, &quot; 1/ 9/1961&quot;, &quot; 1/10/1961&quot;, &quot; 1/11/1961&quot;, &quot; 1/12/1961&quot;, &quot; 1/13/1961&quot;, &quot; 1/14/1961&quot;, &quot; 1/15/1961&quot;, &quot; 1/16/1961&quot;, &quot; 1/17/1961&quot;, &quot; 1/18/1961&quot;, &quot; 1/19/1961&quot;, &quot; 1/20/1961&quot;, &quot; 1/21/1961&quot;, &quot; 1/22/1961&quot;, &quot; 1/23/1961&quot;, &quot; 1/24/1961&quot;, &quot; 1/25/1961&quot;, &quot; 1/26/1961&quot;, &quot; 1/27/1961&quot;, &quot; 1/28/1961&quot;, &quot; 1/29/1961&quot;, &quot; 1/30/1961&quot;, &quot; 1/31/1961&quot;, &quot; 2/ 1/1961&quot;, &quot; 2/ 2/1961&quot;, &quot; 2/ 3/1961&quot;, &quot; 2/ 4/1961&quot;, &quot; 2/ 5/1961&quot;, &quot; 2/ 6/1961&quot;, &quot; 2/ 7/1961&quot;, &quot; 2/ 8/1961&quot;, &quot; 2/ 9/1961&quot;, &quot; 2/10/1961&quot;, &quot; 2/11/1961&quot;, &quot; 2/12/1961&quot;]"></td> 
于 2013-03-15T00:32:18.003 回答
0

如果您知道页面加载时的数据,我建议您直接在 javascript 中将其作为对象文字输出:

html = html + """
<script type="javascript">
var x_water = %s;
var x_date = %s;
</script>"""%(x_water,x_date);
于 2013-03-14T22:39:32.157 回答