jQuery ajax param() 方法
jQuery ajax param() 方法
param() 方法創建數組或對象的序列化表示。
該序列化值可在進行 AJAX 請求時在 URL 查詢字符串中使用。
1. 語法
jQuery.param(object,traditional)
參數 | 描述 |
---|---|
object | 要進行序列化的數組或對象。 |
traditional | 規定是否使用傳統的方式淺層進行序列化(參數序列化)。 |
param() 方法用于在內部將元素值轉換為序列化的字符串表示。請參閱 .serialize() 了解更多信息。
對于 jQuery 1.3,如果傳遞的參數是一個函數,那么用 .param() 會得到這個函數的返回值,而不是把這個函數作為一個字符串來返回。
對于 jQuery 1.4,.param() 方法將會通過深度遞歸的方式序列化對象,以便符合現代化腳本語言的需求,比如 PHP、Ruby on Rails 等。你可以通過設置 jQuery.ajaxSettings.traditional = true; 來全局地禁用這個功能。
如果被傳遞的對象在數組中,則必須是以 .serializeArray() 的返回值為格式的對象數組:
[{name:"first",value:"Rick"}, {name:"last",value:"Astley"}, {name:"job",value:"Rock Star"}]
注意:因為有些框架在解析序列化數字的時候能力有限,所以當傳遞一些含有對象或嵌套數組的數組作為參數時,請務必小心!
在 jQuery 1.4 中,HTML5 的 input 元素也會被序列化。
2. 范例
序列化一個 key/value 對象:
var params = { width:1900, height:1200 }; var str = jQuery.param(params); $("#results").text(str);
結果:
width=1680&height=1050
TIY 范例
輸出序列化對象的結果:
$("button").click(function(){ $("div").text($.param(personObj)); });
3. 更多范例
我們可以如下顯示對象的查詢字符串表示以及 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);
recursiveEncoded 和 recursiveDecoded 的值輸出如下:
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
可以將 traditional 參數設置為 true,來模擬 jQuery 1.4 之前版本中 $.param() 的行為:
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);
recursiveEncoded 和 recursiveDecoded 的值輸出如下:
a=%5Bobject+Object%5D&b=1&b=2&b=3 a=[object+Object]&b=1&b=2&b=3
相關文章
- jQuery - Chaining
- jQuery css() 方法
- jQuery 遍歷
- jQuery 遍歷 兄弟
- jQuery AJAX get() 和 post() 方法
- jQuery 參考手冊 事件
- jQuery 參考手冊 效果
- jQuery 參考手冊 CSS 操作
- jQuery 參考手冊 數據
- jQuery 參考手冊 DOM 元素方法
- jQuery 事件 bind() 方法
- jQuery 事件 blur() 方法
- jQuery 事件 die() 方法
- jQuery 事件 error() 方法
- jQuery 事件 isDefaultPrevented() 方法
- jQuery 事件 focus() 方法
- jQuery 事件 keyup() 方法
- jQuery 事件 live() 方法
- jQuery 事件 resize() 方法
- jQuery 事件 toggle() 方法