通过循环遍历li创建JSON对象

时间:2013-04-14 12:32:30

标签: jquery arrays json loops

我希望有人能看到我在这里出错的地方,我在尝试通过遍历所有列表项来创建JSON对象时遇到了一些问题。

基本上,我想要实现的目标是获得一个PHP数组:

$positions = array(
1 => 2,
2 => 3,
3 => 4,
4 => 5,
5 => 6,
6 => 1);

我需要创建一个包含所有列表项的JSON对象,以便稍后可以使用AJAX发送它。我需要它采用这种格式:

[{1:2, 2:3, 3:4, 4:5, 5:6, 6:1}]

我目前拥有的代码是:

    <li data-serial="6" data-newpos="1"></li>

    jsonObj = [];
    $("li.item").each(function() {
            var id = $(this).attr('data-serial');
            jsonObj.push({
                id: $(this).attr('data-newpos')
            });
        });
        alert(JSON.stringify(jsonObj)); 

但是这给了我这个不是我需要的结果:

[{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"},{"id":"5"},{"id":"6"}]

任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:3)

试试这个:

jsonObj = {};
$("li.item").each(function() {       
               var id = $(this).attr('data-serial');
               jsonObj[ id ] = $(this).attr('data-newpos');
             });

这将为您提供此表单的对象(假设data.属性正确)

{"1":"2", "2":"3", "3":"4", "4":"5", "5":"6", "6":"1"}