jQuery ajax - param() metod
exempel
serialisera en key/value Objekt:
var params = { width:1900, height:1200 }; var str = jQuery.param(params); $("#results").text(str);
Resultat:
width=1680&height=1050
TIY-exempel
Skriv ut resultatet av den serialiserade objektet:
$("button").click(function(){ $("div").text($.param(personObj)); });
Definition och användning
param() metoden skapar en serialiserad representation av en array eller ett objekt.
den serialiserade värdet kan användas i URL-forespärrsträngen vid AJAX-forespärrar.
syntaks
jQuery.param(object,traditional)
parametrar | beskrivning |
---|---|
object | den array eller objekt som ska serialiseras. |
traditional | ange om du vill använda det traditionella sättet att serialisera på ett yttre sätt (paramserialisering). |
detaljerad beskrivning
param() metoden används för att interna konvertera elementvärden till en serialiserad strängrepresentation. Se .serialize() Lär dig mer.
För jQuery 1.3, om det överförda parametern är en funktion, kommer .param() att returnera funktionens returvärde, inte som en sträng.
För jQuery 1.4 kommer .param() metoden att serialisera objektet på ett djupet rekursivt sätt för att uppfylla kraven för moderna skriptspråk, som PHP, Ruby on Rails och andra. Du kan inaktivera denna funktion globalt genom att sätta jQuery.ajaxSettings.traditional = true;.
om det överförda objektet finns i arrayen, måste det vara med .serializeArray() återvärdet är en objektarray i formatet:
[{name:"first",value:"Rick"}, {name:"last",value:"Astley"} {name:"job",value:"Rock Star"}]
Observera:Eftersom vissa ramverk har begränsad förmåga att解析serialiserade tal, måste du vara försiktig när du skickar arrayer som innehåller objekt eller nästlade arrayer som parametrar!
I jQuery 1.4 kommer även HTML5 input-element att serialiseras.
Mer exempel
Vi kan visa objektets frågesträngsrepresentation och URI-kodade version som följer:
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 och recursiveDecoded värdena visas som följer:
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
Du kan ställa in traditional-parametern till true för att simulera beteendet för $.param() i versioner av jQuery 1.4 och tidigare:
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 och recursiveDecoded värdena visas som följer:
a=%5Bobject+Object%5D&b=1&b=2&b=3 a=[object+Object]&b=1&b=2&b=3