博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery1.9(辅助函数)学习之—— jQuery.param( obj );
阅读量:4151 次
发布时间:2019-05-25

本文共 1896 字,大约阅读时间需要 6 分钟。

 

jQuery.param( obj );  返回一个String

 

描述: 创建一个数组或对象序列化的的字符串,适用于一个URL 地址查询字符串或Ajax请求。

 

 

jQuery.param( obj );

  • obj
    类型:
    用于数组或序列化的对象。

jQuery.param( obj, traditional );

 

  • obj
    类型:
    用于数组或序列化的对象。
  • traditional
    类型:
    一个布尔值,指示是否执行了传统的“shallow”的序列化。

 

这个函数 可以将表单元素的值 转换为 序列化字符串 (更多细节查阅 )。

在 jQuery 1.3中, 这个函数的返回值被用来代替函数作为一个字符串。

在 jQuery 1.4中, $.param() 方法将会通过深度递归的方式序列化对象,以便符合现代化脚本语言和框架的需求,比如 PHP 和 Ruby on Rails。 你可以通过设置 jQuery.ajaxSettings.traditional = true;废除这个全局功能。

如果传递的对象是一个数组,它必须是一个对象数组,其格式要跟返回的格式一样:

 

[{name:"first",value:"Rick"},{name:"last",value:"Astley"},{name:"job",value:"Rock Star"}]

 注意: 因为一些框架解析序列化的数字的能力有限, 在传递 obj 参数时我们应该谨慎,尽量不要传递含有对象的数组,或者数组中嵌套其它数组。

 

注意: 由于目前对序列化字符串没有统一的规约,此方法无法对复杂数据结构进行编码,使之可以支持所有语言。 在此之前, $.param 方法将继续保持其目前的形式。

 

 

在 jQuery 1.4 HTML5中input元素也是序列化的元素。

我们可以显示一个对象的查询字符串 和一个相应的URI-decoded 版本,如下:

var myObject = {		a:{			one:1,			two:2,			three:3		},		b:[1,2,3]	};var recursiveEncoded = $.param(myObject);var recursiveDecoded = decodeURIComponent($.param(myObject));alert(recursiveDecoded);alert(recursiveEncoded);

 

recursiveEncodedrecursiveDecoded 的结果如下:

 

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

 

在jQuery1.4之前,要模仿$.param()的行为,我们可以设置 traditional 参数为 true

 

var myObject = {a: {one: 1,two: 2,three: 3},b: [1,2,3]};var shallowEncoded = $.param(myObject, true);var shallowDecoded = decodeURIComponent(shallowEncoded);alert(shallowEncoded);alert(shallowDecoded);

 

shallowEncodedshallowDecoded 的结果如下:

a=%5Bobject+Object%5D&b=1&b=2&b=3

a=[object+Object]&b=1&b=2&b=3

 

 

例子:

 

Demo:

width=1680&height=1050

 

序列号一些复杂的对象:

// <=1.3.2:$.param({ a: [2,3,4] }) // "a=2&a=3&a=4"// >=1.4:$.param({ a: [2,3,4] }) // "a[]=2&a[]=3&a[]=4"// <=1.3.2:$.param({ a: { b:1,c:2 }, d: [3,4,{ e:5 }] }) // "a=[object+Object]&d=3&d=4&d=[object+Object]"// >=1.4:$.param({ a: { b:1,c:2 }, d: [3,4,{ e:5 }] }) // "a[b]=1&a[c]=2&d[]=3&d[]=4&d[2][e]=5"

 

转载地址:http://yvlti.baihongyu.com/

你可能感兴趣的文章
程序员40岁之后怎么办
查看>>
isnan isinf
查看>>
连续邮资问题
查看>>
sort qsort的区别
查看>>
一些经典的计算机书籍
查看>>
查找一段文字中最长的重复字串 – 编程珠玑(排过序的后缀数组的应用)
查看>>
在数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数
查看>>
一个文件,内含一千万行字符串,每个字符串在1K以内,要求找出所有相反的串对
查看>>
概率生产器
查看>>
老鼠与毒药
查看>>
寻找捣乱分子对
查看>>
最长等差数列
查看>>
百度vs腾讯
查看>>
查找两个已经排好序的数组的第k大的元素
查看>>
短址(short URL)原理及其实现
查看>>
java 基本的文件读写
查看>>
C语言实现封装、继承和多态
查看>>
将表达式转换成逆波兰式
查看>>
c++内存分配的方式
查看>>
Linux进程间通信分类 以及 pipe的原理实现
查看>>