2

我希望有人能在这里看到我哪里出错了,我在尝试通过循环遍历我的所有列表项来创建 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"}]

任何帮助将不胜感激!

4

1 回答 1

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"}
于 2013-04-14T12:37:37.233 回答