我正在尝试将页面上所有textareas的值传递给JSON表。
由于某种原因,我得到了“无法设置未定义错误的值”,我不明白,因为我的Json是较早定义的。
这是带有2个功能的代码。
function parseToJson() {
var json = {};
$("input.invoice_details").each(function () {
json[this.id] = $(this).val();
});
$("select.invoice_details").each(function () {
json[this.id] = $(this).val();
});
json.categories = {};
$("textarea.invoice_categories").each(function () {
if (this.value.trim() !== '') {
json.categories[this.id].values = splitInput(this);
json.categories[this.id].label = this.name;
}
});
console.log(JSON.stringify(json));
generatePreveiw(json);
}
function splitInput(textArea) {
var input = textArea.value.trim();
var lines = input.split("\n");
var array = [];
$.each(lines, function (indexLine, line) {
var columns = line.split("\t");
var obj = {};
$.each(columns, function (indexColumn, column) {
var columnName = columnsName.columnsName[indexColumn].name;
obj[columnName] = column;
});
array.push(obj);
});
return array;
}
最佳答案
json.categories[this.id].values = splitInput(this);
json.categories[this.id].label = this.name;
应该:
json.categories[this.id] = {
values: splitInput(this),
label: this.name
};
如果没有先创建对象,就无法设置对象的属性。您可以使用此对象文字语法一步来创建对象及其属性。
关于javascript - JSON:未捕获的TypeError:无法设置未定义的属性“值”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33255666/