jquery Serialize要实现的方法

时间:2014-10-21 12:43:58

标签: javascript jquery serialization

  1. 用户经常在搜索页面选中一些方面后对其进行书签以优化其搜索查询。每次选择或取消选择构面时,细化面板都需要能够序列化选定的构面以包含在URL中。
  2. http://jsfiddle.net/sk7pqf5c/

    序列化方法应该是:

    ?refine=panelId:facet1id...
    

1 个答案:

答案 0 :(得分:0)

您可以提取表示已选择内容的数据,如下所示:

$('#getSelection').click(function(){
    var selection = $('.panel').map(function(_,e){
        var $e = $(e);
        return {
            panelId: $e.data('id'),
            selectedFacets: $e.find('input:checkbox:checked').map( function(_,i){
                return i.id;
            }).get()
        };
    }).get();
    console.log(selection)
});

假设一个标识为getSelection的按钮,此代码创建一个包含以下内容的对象数组:

  

[Object {panelId =“size”,selectedFacets = [1]},Object {panelId =“base_colour”,selectedFacets = [1]},Object {panelId =“brand”,selectedFacets = [1]}] < / p>

在该示例中,每个selectedFacets属性都是复选框中id属性的数组。

实例:http://jsfiddle.net/sk7pqf5c/4/

从那里你只需要将该数组转换为一个字符串并将其传递到一个问题字符串的任何地方。换句话说,您需要解析该字符串,将其转换回类似于上面生成的数组,并使用它预先选择屏幕上的复选框。