编辑:对部分重复的问题道歉。我似乎错过了它。
我编写了一个函数来扫描我想要的表,将标题用作属性名称并将其添加到空对象中。问题似乎与json对象有关。我已经尝试过各种语法,但我无法在对象中添加属性。
var jsonData = [{}];
function saveTableToDataSet(tableName,jsonObj) {
debugger;
var oTable = document.getElementById(tableName);
var columnNames = []
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
for (var j = 1; j < rowLength; j++) {
var oCells = oTable.rows.item(j).cells;
var cellLength = oCells.length;
for (var k = 0; k < cellLength; k++) {
var columnName = columnNames[k];
var cellVal = oCells.item(k).innerHTML;
//the problem
jsonObj[j.columnName] = cellVal;
}
}
}
};
我显然没有正确引用对象或其属性,但我尝试了无限的语法组合。除了看起来正确之外的所有人。
编辑:它只是将我的jsonObj参数视为一个字符串。我把最后一点改为:
//the problem
newObj = [];
newObj[columnName] = cellVal;
jsonData["dataItem"+j] = newObj;
}
它正在发挥作用。理想情况下,我希望能够传递对象的名称。
答案 0 :(得分:0)
将您的电话改为:
OnClientClick="saveTableToDataSet('seriesData', jsonData);"
删除单引号会将jsonData
视为变量而不是文字。