序列化数据属性

Jer*_*ans 0 arrays jquery serialization multidimensional-array

我有一个拖放系统,每个丢弃的项目都有三个数据属性.

  • 数据ID
  • 数据阶
  • 数据内容

现在我应该将这些属性放入一个多维数组中.它应该如下所示:

data-order ="0"[data-id ="1",data-content ="blabla"]; data-order ="1"[data-id ="2",data-content ="another content"];

但我不知道如何实现这一目标.还没有在jQuery中使用数组.

谢谢您的帮助!

这是我一直在尝试的东西,但没有成功:

<li class="dropped" data-order="0" data-id="1" data-content="blabla"></li>
<li class="dropped" data-order="0" data-id="2" data-content="another content"></li>

$(".send").click(function() {

    var itterate = $(".dropped");
    var data_array = new Array();

    for (var i in itterate.data()) {

        var sub_array = new Array();
        sub_array['data-order'] = i;
        sub_array['data-id'] = itterate.data()[i];
        sub_array['data-content'] = itterate.data([i]);

        data_array.push(sub_array);

    }

    var serialized = $.param(itterate.serializeArray().concat(data_array));

    $("#result").text(serialized);

});
Run Code Online (Sandbox Code Playgroud)

这是一个jsfiddle

Lee*_*ish 6

http://jsfiddle.net/hk120Lhq/1/

$(".send").click(function() {

    var data_array = new Array();
    $(".dropped").each(function(){

        var item = {};
        item['data-order'] = $(this).data('order');
        item['data-id'] = $(this).data('id');
        item['data-content'] = $(this).data('content');

        data_array.push(item);

    });
    var serialized = JSON.stringify(data_array);

    $("#result").text(serialized);

});
Run Code Online (Sandbox Code Playgroud)

所以.each和你想要做的循环一样.我不确定你在循环中做了什么,但我认为这是你想要的结果.

进一步简化:http://jsfiddle.net/hk120Lhq/3/

如果您只想从您的li获取所有数据属性并且不确定将会有多少或将要调用它们,请执行以下操作:http://jsfiddle.net/hk120Lhq/4/

$(".send").click(function() {

    var data_array = new Array();
    $(".dropped").each(function(){
        var item = {};
        for(var i in $(this).data()){
            item[i] = $(this).data(i);
        }
        data_array.push(item);

    });
    var serialized = JSON.stringify(data_array);

    $("#result").text(serialized);

});
Run Code Online (Sandbox Code Playgroud)