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;
}
,它的工作。理想的情况是,虽然我希望能够在传递对象的名称
你怎么称呼这个功能? jsonData传递给它的是什么? – AtheistP3ace
目前它的OnCientClick和我传递表名和json对象名作为参数: OnClientClick =“saveTableToDataSet('seriesData','jsonData');” – RoToQ
它把你的jsonObj视为一个字符串的原因是因为你通过引号将变量传递给它 – AtheistP3ace