Juery手册 专题
专题目录
您的位置:JS框架 > Juery手册专题 > Jquery1.7-jQuery.param(obj,[traditional])
Jquery1.7-jQuery.param(obj,[traditional])
作者:--    发布时间:2019-11-21

返回值:stringjquery.param(obj,[traditional])

概述

将表单元素数组或者对象序列化。是.serialize()的核心方法。

在jquery 1.3中,如果传递的参数是一个函数,那么用.param()会得到这个函数的返回值,而不是把这个函数作为一个字符串来返回。

在jquery 1.4中,.param()会深度递归一个对象来满足现在脚本语言和框架,比如php, ruby on rails等。你可以通过jquery.ajaxsettings.traditional = true; 来全局得禁用这个功能。

注意:因为有些框架在解析序列化数字的时候能力有限,所以当传递一些含有嵌套对象、数组的对象作为参数时,请务必小心!

在jquery 1.4中,html5的input元素也会被序列化。

参数

objarray<elements>/jquery/objectv1.2

数组或jquery对象会按照name/value对进行序列化,普通对象按照key/value对进行序列化。

obj,[traditional]array<elements>/jquery/object,booleanv1.4

obj:数组或jquery对象会按照name/value对进行序列化,普通对象按照key/value对进行序列化。

traditional:是否使用传统的方式浅层序列化。

示例

描述:

按照key/value对序列化普通对象。

jquery 代码:

    var params = { width:1680, height:1050 };
    var str = jquery.param(params);
    $("#results").text(str);
结果:
width=1680&height=1050

描述:

对比两种序列化方式

jquery 代码:
var myobject = {
  a: {
    one: 1, 
    two: 2, 
    three: 3
  }, 
  b: [1,2,3]
};
var recursiveencoded = $.param(myobject);
var recursivedecoded = decodeuricomponent($.param(myobject));

alert(recursiveencoded);
alert(recursivedecoded);
//a%5bone%5d=1&a%5btwo%5d=2&a%5bthree%5d=3&b%5b%5d=1&b%5b%5d=2&b%5b%5d=3
//a[one]=1&a[two]=2&a[three]=3&b[]=1&b[]=2&b[]=3

var shallowencoded = $.param(myobject, true);
var shallowdecoded = decodeuricomponent(shallowencoded);

alert(shallowencoded);
alert(shallowdecoded);
//a=%5bobject+object%5d&b=1&b=2&b=3
//a=[object+object]&b=1&b=2&b=3
网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册