jquery.param()實(shí)現(xiàn)數(shù)組或?qū)ο蟮男蛄谢椒?/h1>
更新時(shí)間:2018年10月08日 09:49:46 作者:騎著代碼去流浪
今天小編就為大家分享一篇jquery.param()實(shí)現(xiàn)數(shù)組或?qū)ο蟮男蛄谢椒ǎ哂泻芎玫膮⒖純r(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
jQuery.param( obj ):
創(chuàng)建適用于URL查詢字符串或Ajax請(qǐng)求的數(shù)組,普通對(duì)象或jQuery對(duì)象的序列化表示形式。 如果jQuery對(duì)象被傳遞,它應(yīng)該包含具有name / value屬性的輸入元素。
jQuery.param( obj ):
obj:
類型:Array或PlainObject或jQuery
一個(gè)數(shù)組,一個(gè)普通的對(duì)象,或一個(gè)jQuery對(duì)象進(jìn)行序列化。
jQuery.param( obj, traditional ):
obj:
類型:Array或PlainObject或jQuery
一個(gè)數(shù)組,一個(gè)普通的對(duì)象,或一個(gè)jQuery對(duì)象進(jìn)行序列化。
traditional :
類型:布爾值
一個(gè)布爾值,表示是否執(zhí)行傳統(tǒng)的“淺”序列化。
內(nèi)部使用此函數(shù)將表單元素值轉(zhuǎn)換為序列化字符串表示形式(有關(guān)更多信息,請(qǐng)參閱.serialize())。
從jQuery 1.3開始,使用函數(shù)的返回值代替函數(shù)作為String。
從jQuery 1.4開始,$ .param()方法遞歸序列化深層對(duì)象,以適應(yīng)現(xiàn)代腳本語言和框架,如PHP和Ruby on Rails。
您可以通過設(shè)置jQuery.ajaxSettings.traditional = true來全局禁用此功能。從jQuery 3.0開始,$ .param()方法不再使用jQuery.ajaxSettings.traditional作為其默認(rèn)設(shè)置,默認(rèn)為false。
為了跨版本的最佳兼容性,請(qǐng)調(diào)用$ .param()和第二個(gè)參數(shù)的顯式值,并且不要使用默認(rèn)值。如果傳遞的對(duì)象在數(shù)組中,則它必須是由.serializeArray()返回的格式的對(duì)象數(shù)組。
[
{ name: "first", value: "Rick" },
{ name: "last", value: "Astley" },
{ name: "job", value: "Rock Star" }
]
注意:由于某些框架解析序列化數(shù)組的能力有限,因此開發(fā)人員在傳遞包含嵌套在另一個(gè)數(shù)組中的對(duì)象或數(shù)組的obj參數(shù)時(shí)應(yīng)謹(jǐn)慎。
注意:由于沒有普遍約定的param字符串規(guī)范,所以不可能以支持此類輸入的所有語言的理想方式對(duì)使用此方法的復(fù)雜數(shù)據(jù)結(jié)構(gòu)進(jìn)行編碼。 使用JSON格式替代編碼復(fù)雜數(shù)據(jù)。
在jQuery 1.4中,HTML5輸入元素也被序列化。我們可以顯示一個(gè)對(duì)象的查詢字符串表示形式和一個(gè)URI解碼版本,如下所示:
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 );
shallowEncoded和shallowDecoded的值彈出如下:
a=%5Bobject+Object%5D&b=1&b=2&b=3
a=[object+Object]&b=1&b=2&b=3
舉例:
序列化一個(gè)鍵/值對(duì)象。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery.param demo</title>
<style>
div {
color: red;
}
</style>
<script src="https://code.jquery.com/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>
演示:
序列化一些復(fù)雜的對(duì)象
// <=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()實(shí)現(xiàn)數(shù)組或?qū)ο蟮男蛄谢椒ň褪切【幏窒斫o大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
-
調(diào)用HttpHanlder的幾種返回方式小結(jié)
本篇文章主要是對(duì)調(diào)用HttpHanlder的幾種返回方式進(jìn)行了總結(jié)介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助 2013-12-12
-
非常漂亮的相冊(cè)集 使用jquery制作相冊(cè)集
這篇文章主要為大家詳細(xì)介紹了使用jquery制作非常漂亮的相冊(cè)集,步驟詳細(xì),細(xì)節(jié)介紹完整,感興趣的小伙伴們可以參考一下 2016-04-04
-
jquery實(shí)現(xiàn)帶漸變淡入淡出并向右依次展開的多級(jí)菜單效果實(shí)例
這篇文章主要介紹了jquery實(shí)現(xiàn)帶漸變淡入淡出并向右依次展開的多級(jí)菜單效果,涉及jquery鼠標(biāo)事件及頁面元素動(dòng)態(tài)樣式設(shè)置的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下 2015-08-08
-
強(qiáng)烈推薦240多個(gè)jQuery插件提供下載
jQuery 是繼 prototype 之后又一個(gè)優(yōu)秀的 Javascript 框架。其宗旨是—寫更少的代碼,做更多的事情。它是輕量級(jí)的 js 庫(壓縮后只有21k) ,這是其它的 js 庫所不及 的,它兼容 CSS3,還兼容各種瀏覽器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 2008-06-06
-
jQuery+css3實(shí)現(xiàn)Ajax點(diǎn)擊后動(dòng)態(tài)刪除功能的方法
這篇文章主要介紹了jQuery+css3實(shí)現(xiàn)Ajax點(diǎn)擊后動(dòng)態(tài)刪除功能的方法,可實(shí)現(xiàn)點(diǎn)擊選區(qū)后出現(xiàn)選區(qū)收縮、滾動(dòng)消失的效果,涉及jquery結(jié)合Ajax與數(shù)學(xué)運(yùn)算實(shí)時(shí)操作頁面元素的相關(guān)技巧,需要的朋友可以參考下 2015-08-08
最新評(píng)論
jQuery.param( obj ):
創(chuàng)建適用于URL查詢字符串或Ajax請(qǐng)求的數(shù)組,普通對(duì)象或jQuery對(duì)象的序列化表示形式。 如果jQuery對(duì)象被傳遞,它應(yīng)該包含具有name / value屬性的輸入元素。
jQuery.param( obj ): obj: 類型:Array或PlainObject或jQuery 一個(gè)數(shù)組,一個(gè)普通的對(duì)象,或一個(gè)jQuery對(duì)象進(jìn)行序列化。 jQuery.param( obj, traditional ): obj: 類型:Array或PlainObject或jQuery 一個(gè)數(shù)組,一個(gè)普通的對(duì)象,或一個(gè)jQuery對(duì)象進(jìn)行序列化。 traditional : 類型:布爾值 一個(gè)布爾值,表示是否執(zhí)行傳統(tǒng)的“淺”序列化。
內(nèi)部使用此函數(shù)將表單元素值轉(zhuǎn)換為序列化字符串表示形式(有關(guān)更多信息,請(qǐng)參閱.serialize())。
從jQuery 1.3開始,使用函數(shù)的返回值代替函數(shù)作為String。
從jQuery 1.4開始,$ .param()方法遞歸序列化深層對(duì)象,以適應(yīng)現(xiàn)代腳本語言和框架,如PHP和Ruby on Rails。
您可以通過設(shè)置jQuery.ajaxSettings.traditional = true來全局禁用此功能。從jQuery 3.0開始,$ .param()方法不再使用jQuery.ajaxSettings.traditional作為其默認(rèn)設(shè)置,默認(rèn)為false。
為了跨版本的最佳兼容性,請(qǐng)調(diào)用$ .param()和第二個(gè)參數(shù)的顯式值,并且不要使用默認(rèn)值。如果傳遞的對(duì)象在數(shù)組中,則它必須是由.serializeArray()返回的格式的對(duì)象數(shù)組。
[ { name: "first", value: "Rick" }, { name: "last", value: "Astley" }, { name: "job", value: "Rock Star" } ]
注意:由于某些框架解析序列化數(shù)組的能力有限,因此開發(fā)人員在傳遞包含嵌套在另一個(gè)數(shù)組中的對(duì)象或數(shù)組的obj參數(shù)時(shí)應(yīng)謹(jǐn)慎。
注意:由于沒有普遍約定的param字符串規(guī)范,所以不可能以支持此類輸入的所有語言的理想方式對(duì)使用此方法的復(fù)雜數(shù)據(jù)結(jié)構(gòu)進(jìn)行編碼。 使用JSON格式替代編碼復(fù)雜數(shù)據(jù)。
在jQuery 1.4中,HTML5輸入元素也被序列化。我們可以顯示一個(gè)對(duì)象的查詢字符串表示形式和一個(gè)URI解碼版本,如下所示:
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 );
shallowEncoded和shallowDecoded的值彈出如下:
a=%5Bobject+Object%5D&b=1&b=2&b=3 a=[object+Object]&b=1&b=2&b=3
舉例:
序列化一個(gè)鍵/值對(duì)象。
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>jQuery.param demo</title> <style> div { color: red; } </style> <script src="https://code.jquery.com/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>
演示:
序列化一些復(fù)雜的對(duì)象
// <=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()實(shí)現(xiàn)數(shù)組或?qū)ο蟮男蛄谢椒ň褪切【幏窒斫o大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
調(diào)用HttpHanlder的幾種返回方式小結(jié)
本篇文章主要是對(duì)調(diào)用HttpHanlder的幾種返回方式進(jìn)行了總結(jié)介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12非常漂亮的相冊(cè)集 使用jquery制作相冊(cè)集
這篇文章主要為大家詳細(xì)介紹了使用jquery制作非常漂亮的相冊(cè)集,步驟詳細(xì),細(xì)節(jié)介紹完整,感興趣的小伙伴們可以參考一下2016-04-04jquery實(shí)現(xiàn)帶漸變淡入淡出并向右依次展開的多級(jí)菜單效果實(shí)例
這篇文章主要介紹了jquery實(shí)現(xiàn)帶漸變淡入淡出并向右依次展開的多級(jí)菜單效果,涉及jquery鼠標(biāo)事件及頁面元素動(dòng)態(tài)樣式設(shè)置的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08強(qiáng)烈推薦240多個(gè)jQuery插件提供下載
jQuery 是繼 prototype 之后又一個(gè)優(yōu)秀的 Javascript 框架。其宗旨是—寫更少的代碼,做更多的事情。它是輕量級(jí)的 js 庫(壓縮后只有21k) ,這是其它的 js 庫所不及 的,它兼容 CSS3,還兼容各種瀏覽器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。2008-06-06jQuery+css3實(shí)現(xiàn)Ajax點(diǎn)擊后動(dòng)態(tài)刪除功能的方法
這篇文章主要介紹了jQuery+css3實(shí)現(xiàn)Ajax點(diǎn)擊后動(dòng)態(tài)刪除功能的方法,可實(shí)現(xiàn)點(diǎn)擊選區(qū)后出現(xiàn)選區(qū)收縮、滾動(dòng)消失的效果,涉及jquery結(jié)合Ajax與數(shù)學(xué)運(yùn)算實(shí)時(shí)操作頁面元素的相關(guān)技巧,需要的朋友可以參考下2015-08-08