JS从数据结构输出到表

时间:2011-05-11 17:19:02

标签: javascript html-table

数据结构

var X = {
   a: [{name:"john", phone:777},{name:"john", phone:777},{name:"john", phone:777}],
   b: [{name:"john", phone:777},{name:"john", phone:777},{name:"john", phone:777}],
   c: [{name:"john", phone:777},{name:"john", phone:777},{name:"john", phone:777}],
   d: [{name:"john", phone:777},{name:"john", phone:777},{name:"john", phone:777}]
}

功能

function showTable(trnum,X,a) {
    var Tablecode = "<table><tbody>";
    for (var i=0; i< X.a.length;i++) {
        for (var j=0; j< trnum; j++) {
            Tablecode += "<tr><td>"+X.a[i].name+"</td><td>"+X.a[i].phone+"</td></tr>";
        }
    }
    Tablecode += "</tbody></table>";
    $("#elem").append(Tablecode);
}

标记

<body>
    <button onclick="showTable(4,X,"a");"></button>
    <div id="elem">
    </div>
</body>

我正在尝试根据信件将数据输出到表格。一个表行上的一个对象(表中一个字母内的所有对象)。此代码无效 - 意外令牌"}"。奇怪的是,它指向<div id="elem">行。但是没有这样的角色!我该如何解决这个问题?

更新:谢谢,错误消失了...但它输出整个结构,我如何让它只输出'a'对象?

3 个答案:

答案 0 :(得分:1)

<button onclick="showTable(4,X,"a");"></button>

应该是那样的(双引号):

<button onclick="showTable(4,X,'a');"></button>

将此与您的比较(请参阅.a[a]

for (var i=0; i< X[a].length;i++){
 for (var j=0; j< trnum; j++){
 Tablecode += "<tr><td>"+X[a][i].name+"</td><td>"+X[a][i].phone+"</td></tr>";
 }

}

Feature reading about javascript notations

答案 1 :(得分:0)

从将代码扔进小提琴并让它运行起来,我注意到你的按钮是一个失败点。你必须使用SINGLE引号包围'a'。

http://jsfiddle.net/YaZp2/1/

编辑:此外,编辑了输出代码,添加了实际查看它是否有效的功能。

答案 2 :(得分:0)

双引号用于分隔onclick以及其中的参数。

尝试

<button onclick="showTable(4,X,'a');">