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。
您可以通過設置jQuery.ajaxSettings.traditional = true來全局禁用此功能。從jQuery 3.0開始,$ .param()方法不再使用jQuery.ajaxSettings.traditional作為其默認設置,默認為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, 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
舉例:
序列化一個鍵/值對象。
<!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>
演示:
序列化一些復雜的對象
// <=1.3.2:$.param({ a: [ 2, 3, 4 ] }); // "a=2&a=3&a=4"http:// >=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()實現數組或對象的序列化方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。
新聞熱點
疑難解答