我的js数组到json转换器有问题,我没有结果,但我不知道是什么问题。
我的来源(在外部文件中):
var data = new Array(); data[0] = new Array('Joe','1973-12-11','Male'); data[1] = new Array('Harris','1957-12-11','Male'); data[2] = new Array('Sarah','1974-03-22','Female');
我的代码:
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="json2.js">
</script>
<script src="source.php" type="text/javascript"
language="javascript"></script>
</head>
<body>
<script language="javascript" type="text/javascript">
<!--
$(document).ready(function () {
var json = data;
var tr;
for (var i = 0; i < json.length; i++) {
console.log(json[i])
tr = $('<tr/>');
tr.append("<td>" + json[i][0] + "</td>");
tr.append("<td>" + json[i][1] + "</td>");
tr.append("<td>" + json[i][2] + "</td>");
$('table').append(tr);
}
});
</script>
<table>
</table>
</body>
</html>
我得到了一个结果的空白页面,我不知道为什么。
答案 0 :(得分:1)
实际上你的所有问题都是由这一行引起的:
tr = $('<tr/>');
此处选择器需要tag name
,class
或id
,而您指定的字符串包含错误的HTML,请按以下方式更改:
tr = $('tr');
这就是你得到的原因:
SyntaxError:expect expression,got&#39;&lt;&#39;
同样将表移到脚本标记之外:在正文中:
</script>
<table>
</table>
</body>
答案 1 :(得分:0)
如果你还没有包含jQuery,请像这样包含它:
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
不需要stringify。只需将data
分配给json
变量,或直接迭代data
:
var json = data;
您的source.php
文件看起来应该是这样的:
<?php
header("content-type: application/x-javascript");
echo"var data = new Array(); data[0] = new Array('Joe','1973-12-11','Male'); data[1] = new Array('Harris','1957-12-11','Male'); data[2] = new Array('Sarah','1974-03-22','Female');
";
创建表格元素,或先将其放在html中:
<table></table>
还将索引从1,2,3更改为0,1,2:
var tr;
for (var i = 0; i < json.length; i++) {
tr = $('<tr/>');
tr.append("<td>" + json[i][0] + "</td>");
tr.append("<td>" + json[i][1] + "</td>");
tr.append("<td>" + json[i][2] + "</td>");
$('table').append(tr);
}
输出:
Joe 1973-12-11 Male
Harris 1957-12-11 Male
Sarah 1974-03-22 Female