我正在尝试将页面上所有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/

10-10 15:13