2015-11-10 80 views
0

編輯:對部分重複的問題的道歉。我似乎錯過了它。如何動態創建一個json文件從html表格使用javascript

我已經寫了一個函數來掃描表,我希望它使用頭作爲屬性名稱並將其添加到一個空的對象。這個問題似乎與json對象有關。我嘗試了所有我能夠找到並且無法向對象添加屬性的語法。

var jsonData = [{}]; 
 

 
function saveTableToDataSet(tableName,jsonObj) { 
 
\t debugger; 
 
\t var oTable = document.getElementById(tableName); 
 
    var columnNames = [] 
 
\t var rowLength = oTable.rows.length; 
 
    //get column names 
 
    var oCells = oTable.rows.item(0).cells; 
 
    var cellLength = oCells.length; 
 
    for (var i = 0; i < cellLength; i++) { 
 
     var cellVal = oCells.item(i).innerHTML; 
 
     columnNames[i] = cellVal; 
 
    } 
 
    //get column data 
 
\t for (var j = 1; j < rowLength; j++) { 
 
\t \t var oCells = oTable.rows.item(j).cells; 
 
     var cellLength = oCells.length; 
 
     for (var k = 0; k < cellLength; k++) { 
 
      var columnName = columnNames[k]; 
 
\t \t \t var cellVal = oCells.item(k).innerHTML; 
 

 
    //the problem 
 
\t \t \t jsonObj[j.columnName] = cellVal; 
 
\t \t \t } 
 
\t \t } 
 
\t } 
 
};

我顯然不正確地引用對象及其屬性,但我已經試過語法的無限組合。所有除了正確的一個看似。

編輯︰它只是看到我的jsonObj參數作爲一個字符串。我已經改變了最後一位:

//the problem 
 
    newObj = []; 
 
    newObj[columnName] = cellVal; 
 
    jsonData["dataItem"+j] = newObj; 
 
}

,它的工作。理想的情況是,雖然我希望能夠在傳遞對象的名稱

+0

你怎麼稱呼這個功能? jsonData傳遞給它的是什麼? – AtheistP3ace

+0

目前它的OnCientClick和我傳遞表名和json對象名作爲參數: OnClientClick =「saveTableToDataSet('seriesData','jsonData');」 – RoToQ

+0

它把你的jsonObj視爲一個字符串的原因是因爲你通過引號將變量傳遞給它 – AtheistP3ace

回答

0

更改您的來電這樣:

OnClientClick="saveTableToDataSet('seriesData', jsonData);" 

刪除單引號將把jsonData作爲一個變量而不是文字。

相關問題