jquery.param()实现数组或对象的序列化⽅法jQuery.param( obj ):
创建适⽤于URL查询字符串或Ajax请求的数组,普通对象或jQuery对象的序列化表⽰形式。如果jQuery对象被传递,它应该包含具有name / value属性的输⼊元素。
jQuery.param( obj ):
obj:
类型:Array或PlainObject或jQuery
⼀个数组,⼀个普通的对象,或⼀个jQuery对象进⾏序列化。
jQuery.param( obj, traditional ):
obj:
类型:Array或PlainObject或jQuery
⼀个数组,⼀个普通的对象,或⼀个jQuery对象进⾏序列化。
traditional :
类型:布尔值
⼀个布尔值,表⽰是否执⾏传统的“浅”序列化。
内部使⽤此函数将表单元素值转换为序列化字符串表⽰形式(有关更多信息,请参阅.serialize())。
从jQuery 1.3开始,使⽤函数的返回值代替函数作为String。
从jQuery 1.4开始,$ .param()⽅法递归序列化深层对象,以适应现代脚本语⾔和框架,如PHP和Ruby on Rails。
您可以通过设置aditional = true来全局禁⽤此功能。从jQuery 3.0开始,$ .param()⽅法不再使⽤aditional作为其默认设置,默认为false。
为了跨版本的最佳兼容性,请调⽤$ .param()和第⼆个参数的显式值,并且不要使⽤默认值。如果传递的对象在数组中,则它必须是由.serializeArray()返回的格式的对象数组。
[
{ name: "first", value: "Rick" },
{ name: "last", value: "Astley" },
{ name: "job", value: "Rock Star" }
]
注意:由于某些框架解析序列化数组的能⼒有限,因此开发⼈员在传递包含嵌套在另⼀个数组中的对象或数组的obj参数时应谨慎。
注意:由于没有普遍约定的param字符串规范,所以不可能以⽀持此类输⼊的所有语⾔的理想⽅式对使⽤此⽅法的复杂数据结构进⾏编码。使⽤JSON格式替代编码复杂数据。
在jQuery 1.4中,HTML5输⼊元素也被序列化。我们可以显⽰⼀个对象的查询字符串表⽰形式和⼀个URI解码版本,如下所⽰:
var myObject = {
a: {
one: 1,
jquery实现ajaxtwo: 2,
three: 3
},
b: [ 1, 2, 3 ]
};
var recursiveEncoded = $.param( myObject );
var recursiveDecoded = decodeURIComponent( $.param( myObject ) );
alert( recursiveEncoded );
alert( recursiveDecoded );
shallowEncoded和shallowDecoded的值弹出如下:
a=%5Bobject+Object%5D&b=1&b=2&b=3
a=[object+Object]&b=1&b=2&b=3
举例:
序列化⼀个键/值对象。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery.param demo</title>
<style>
div {
color: red;
}
</style>
<script src="code.jquery/jquery-1.10.2.js"></script>
</head>
<body>
<div id="results"></div>
<script>
var params = { width:1680, height:1050 };
var str = jQuery.param( params );
$( "#results" ).text( str );
</script>
</body>
</html>
演⽰:
序列化⼀些复杂的对象
// <=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"
以上这篇jquery.param()实现数组或对象的序列化⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论