jQuery.param(obj,[traditional])

2018-02-24 15:15 更新

返回值:StringjQuery.param(obj,[traditional])

概述

將表單元素?cái)?shù)組或者對象序列化。是.serialize()的核心方法。

在jQuery 1.3中,如果傳遞的參數(shù)是一個(gè)函數(shù),那么用.param()會得到這個(gè)函數(shù)的返回值,而不是把這個(gè)函數(shù)作為一個(gè)字符串來返回。

在jQuery 1.4中,.param()會深度遞歸一個(gè)對象來滿足現(xiàn)在腳本語言和框架,比如PHP, Ruby on Rails等。你可以通過jQuery.ajaxSettings.traditional = true; 來全局得禁用這個(gè)功能。

注意:因?yàn)橛行┛蚣茉诮馕鲂蛄谢瘮?shù)字的時(shí)候能力有限,所以當(dāng)傳遞一些含有嵌套對象、數(shù)組的對象作為參數(shù)時(shí),請務(wù)必小心!

在jQuery 1.4中,HTML5的input元素也會被序列化。

參數(shù)

objArray/jQuery/ObjectV1.2

數(shù)組或jQuery對象會按照name/value對進(jìn)行序列化,普通對象按照key/value對進(jìn)行序列化。

obj,[traditional]Array/jQuery/Object,BooleanV1.4

obj:數(shù)組或jQuery對象會按照name/value對進(jìn)行序列化,普通對象按照key/value對進(jìn)行序列化。

traditional:是否使用傳統(tǒng)的方式淺層序列化。

示例

描述:

按照key/value對序列化普通對象。

jQuery 代碼:

    var params = { width:1680, height:1050 };
    var str = jQuery.param(params);
    $("#results").text(str);
結(jié)果:
width=1680&height=1050

描述:

對比兩種序列化方式

jQuery 代碼:
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);
//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

var shallowEncoded = $.param(myObject, true);
var shallowDecoded = decodeURIComponent(shallowEncoded);

alert(shallowEncoded);
alert(shallowDecoded);
//a=%5Bobject+Object%5D&b=1&b=2&b=3
//a=[object+Object]&b=1&b=2&b=3
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號