【问题标题】:Generating JSON Object生成 JSON 对象
【发布时间】:2009-08-13 17:06:16
【问题描述】:

我正在尝试通过将项目添加到购物车来解析我使用 Javascript 生成的表中的行,然后在用户点击所有项目的保存顺序并使用 @ 将其传递给 php 脚本时创建一个 json 对象987654321@ 在 jQuery 中。

我遇到的唯一麻烦是理解 JSON 对象以及如何将更多项目推送到对象上。我在萤火虫中收到一个错误,告诉我devices[i] 未定义。不太确定如何做到这一点。我以为它真的只是一个数组。

    function Save()
  {
    var devices = new Object();
    var i = 0;

$("#device_tbl tr:gt(0)").each(function(){
    var manufid = $(this).find("td").eq(0).find(".manuf_id").html();
    var modelid = $(this).find("td").eq(1).find(".model_id").html();
    var condition = $(this).find("td").eq(2).find("select").val();
    var carrier = $(this).find("td").eq(3).find("select").val();
    var imei = $(this).find("td").eq(4).find("input").val();
    var price = $(this).find("td").eq(5).html();
    alert(manufid+"\n"+modelid+"\n"+carrier+"\n"+imei+"\n"+price);

    devices[i].manufid = manufid;
    devices[i].modelid = modelid;
    devices[i].carrier = carrier;
    devices[i].imei = imei;
    devices[i].price = price;

    i++;

    });
document.write(devices);     //just for debugging


$("#final").show();  
}

【问题讨论】:

    标签: javascript json parsing


    【解决方案1】:

    您当前将设备声明为对象,但您将其视为数组。

    您需要将其声明为对象数组。

      function Save()
      {
        var devices = new Array();
        var i = 0;
    
    $("#device_tbl tr:gt(0)").each(function(){
            var manufid = $(this).find("td").eq(0).find(".manuf_id").html();
            var modelid = $(this).find("td").eq(1).find(".model_id").html();
            var condition = $(this).find("td").eq(2).find("select").val();
            var carrier = $(this).find("td").eq(3).find("select").val();
            var imei = $(this).find("td").eq(4).find("input").val();
            var price = $(this).find("td").eq(5).html();
            alert(manufid+"\n"+modelid+"\n"+carrier+"\n"+imei+"\n"+price);
    
            devices[i] = new Object();
            devices[i].manufid = manufid;
            devices[i].modelid = modelid;
            devices[i].carrier = carrier;
            devices[i].imei = imei;
            devices[i].price = price;
    
            i++;
    
            });
    document.write(devices);         //just for debugging
    
    
    $("#final").show();
    }
    

    或类似的东西。

    (已更新以在您的代码中显示)

    【讨论】:

    • “设备[i] = new Object();”部分很关键,将其声明为数组是可选的
    猜你喜欢
    • 2015-10-05
    • 2016-04-30
    • 2020-06-08
    • 1970-01-01
    • 2016-06-09
    • 2020-08-15
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多