您好,登錄后才能下訂單哦!
怎么在jquery中使用param()實現(xiàn)數(shù)組或?qū)ο蟮男蛄谢??針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
jQuery.param( obj ):
創(chuàng)建適用于URL查詢字符串或Ajax請求的數(shù)組,普通對象或jQuery對象的序列化表示形式。 如果jQuery對象被傳遞,它應(yīng)該包含具有name / value屬性的輸入元素。
jQuery.param( obj ): obj: 類型:Array或PlainObject或jQuery 一個數(shù)組,一個普通的對象,或一個jQuery對象進(jìn)行序列化。 jQuery.param( obj, traditional ): obj: 類型:Array或PlainObject或jQuery 一個數(shù)組,一個普通的對象,或一個jQuery對象進(jìn)行序列化。 traditional : 類型:布爾值 一個布爾值,表示是否執(zhí)行傳統(tǒng)的“淺”序列化。
內(nèi)部使用此函數(shù)將表單元素值轉(zhuǎn)換為序列化字符串表示形式(有關(guān)更多信息,請參閱.serialize())。
從jQuery 1.3開始,使用函數(shù)的返回值代替函數(shù)作為String。
從jQuery 1.4開始,$ .param()方法遞歸序列化深層對象,以適應(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。
為了跨版本的最佳兼容性,請調(diào)用$ .param()和第二個參數(shù)的顯式值,并且不要使用默認(rèn)值。如果傳遞的對象在數(shù)組中,則它必須是由.serializeArray()返回的格式的對象數(shù)組。
[ { name: "first", value: "Rick" }, { name: "last", value: "Astley" }, { name: "job", value: "Rock Star" } ]
注意:由于某些框架解析序列化數(shù)組的能力有限,因此開發(fā)人員在傳遞包含嵌套在另一個數(shù)組中的對象或數(shù)組的obj參數(shù)時應(yīng)謹(jǐn)慎。
注意:由于沒有普遍約定的param字符串規(guī)范,所以不可能以支持此類輸入的所有語言的理想方式對使用此方法的復(fù)雜數(shù)據(jù)結(jié)構(gòu)進(jìn)行編碼。 使用JSON格式替代編碼復(fù)雜數(shù)據(jù)。
在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>
演示:
序列化一些復(fù)雜的對象
// <=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是一個簡潔而快速的JavaScript庫,它具有獨特的鏈?zhǔn)秸Z法和短小清晰的多功能接口、高效靈活的css選擇器,并且可對CSS選擇器進(jìn)行擴(kuò)展、擁有便捷的插件擴(kuò)展機(jī)制和豐富的插件,是繼Prototype之后又一個優(yōu)秀的JavaScript代碼庫,能夠用于簡化事件處理、HTML文檔遍歷、Ajax交互和動畫,以便快速開發(fā)網(wǎng)站。
關(guān)于怎么在jquery中使用param()實現(xiàn)數(shù)組或?qū)ο蟮男蛄谢瘑栴}的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。