【问题标题】:creating a JSON object by looping through li通过 li 循环创建 JSON 对象
【发布时间】:2013-04-14 12:32:29
【问题描述】:

我希望有人能在这里看到我哪里出错了,我在尝试通过循环遍历我的所有列表项来创建 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:2, 2:3, 3:4, 4:5, 5:6, 6:1}] 不是有效的 json

标签: jquery arrays json loops


【解决方案1】:

试试这个:

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"}

【讨论】:

  • 谢谢,这正是我要找的!
猜你喜欢
  • 2012-03-27
  • 1970-01-01
  • 1970-01-01
  • 2016-11-11
  • 1970-01-01
  • 2016-10-11
  • 2014-11-27
  • 2013-09-04
  • 1970-01-01
相关资源
最近更新 更多