要实现的jquery序列化方法

jquery Serialize Method to be implemented

本文关键字:序列化 方法 jquery 实现      更新时间:2023-09-26
  1. 用户通常在选择了一些方面来完善他们的搜索查询之后,将搜索页面添加为书签。每次选择或取消选择方面时,精化面板都需要能够序列化所选方面以包含在URL中

http://jsfiddle.net/sk7pqf5c/

序列化方法应为:

?refine=panelId:facet1id...

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

$('#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)
});

这假设了一个id为getSelection的按钮,并且此代码创建了一个对象数组,其中包含以下内容:

[对象{panelId="size",selectedFacets=[1]},对象{panelId="base_color",selectedFacets=[1]},物体{panel Id="brand",selelectedFacets=[1]}]

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

现场示例:http://jsfiddle.net/sk7pqf5c/4/

从那里你只需要把数组转换成一个字符串,然后把它传递到你喜欢的任何地方。相反,您需要解析该字符串,将其返回到类似于上面生成的数组中,并使用它来预先选择屏幕上的复选框。