2011-05-11 52 views
0

數據結構JS輸出表

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'對象?

回答

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

+0

感謝,錯誤消失了,但它輸出的整個結構,我如何讓它只輸出「A」的對象? – DrStrangeLove 2011-05-11 17:31:06

+0

我更新了我的答案:) – 2011-05-11 17:38:03

+0

@lord_t謝謝,但它不工作..所有相同的 - 所有12「約翰」.. – DrStrangeLove 2011-05-11 17:43:21

0

從折騰你的代碼一個小提琴,讓它跑,我注意到了你的按鈕是一個失敗點。你必須用單引號括住'a'。

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

編輯:另外,編輯,輸出代碼添加到真正看到它是否正常工作的能力。

0

用於分隔onclick和其中的參數的雙引號。

嘗試

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