用于在循环内创建json对象的Jquery代码

时间:2013-09-02 05:49:24

标签: jquery json

http://jsfiddle.net/hU89p/219/

在下面的例子中,我必须在seltected复选框上创建一个json对象。虽然选中一个复选框,我必须创建一个json,如

var data={"name":"BlackBerry Bold 9650", "rating":"2/5", "Location":UK};

选择2个两个复选框,我必须创建

var data= {"name":"BlackBerry Bold 9650", "rating":"2/5" ,"Location":UK,"name":"Samsung Galaxy", "rating":"3.5/5", "Location":US};
明智的

1 个答案:

答案 0 :(得分:12)

试试这个:

我更改了您的选择器以直接查找选中的项目。然后,在循环中,最接近的父tr。

然后从每个td中提取适当的值并存储在对象中。此代码依赖于索引,如果内容发生更改,则可能会很脆弱。您可能希望为选择器使用类或​​其他标记。

demo

function myfunc(ele) {

    var values = [];
    $.each($("input[name='case[]']:checked:enabled"),

    function () {
        var $tr = $(this).closest('tr');
        values.push({
            name: $tr.find('td:eq(1)').text(),
            rating: $tr.find('td:eq(2)').text(),
            location: $tr.find('td:eq(3)').text()
        });
    });

    alert("val---" + JSON.stringify(values));
}

结果:

values = [
  {
    "name": "BlackBerry Bold 9650",
    "rating": "2/5",
    "location": "UK"
  },
  {
    "name": "Samsung Galaxy",
    "rating": "3.5/5",
    "location": "US"
  }
]