首頁 >web前端 >js教程 >比較JQuery中serialize()、serializeArray()和param()的差異與使用方法

比較JQuery中serialize()、serializeArray()和param()的差異與使用方法

巴扎黑
巴扎黑原創
2017-07-03 13:54:261108瀏覽

serialize()方法也是作用於一個JQuery物件,它能夠將DOM元素內容序列化為字串,serializeArray()方法不是傳回字串,而是將DOM元素序列化後,傳回JSON格式的資料

下面是伺服器端的jsp程式碼:


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<% 
request.setCharacterEncoding("UTF-8"); 
String username = request.getParameter("username"); 
String content = request.getParameter("content"); 
out.println("<p class=&#39;comment&#39;><h6> "+username+" :</h6><p class=&#39;para&#39;> "+content+" 
</p></p>"); 
%>

與JQuery中其他方法一樣,serialize()方法也是作用於一個JQuery對象,它能夠將DOM元素內容序列化為字串,用於ajax請求。透過使用serialize()方法,可以提交本頁面的所有網域,程式碼如下:


$("#send").click(function(){ 
$.get("get1.jsp", $("#form1").serialize(), function(data, textStatus) 
$("#resText").html(data); 
});
});

當點擊「提交」按鈕後,所有屬於form1的表單元素都能提交到後台,即使在表單中再增加字段,腳本仍然能夠使用,並且不需要做其他多餘工作。

用字串方式時,需要注意對字元編碼(中文問題),如果不希望編碼帶來麻煩,可以使用serialize()方法,它會自動編碼。

因為serialize()方法作用於JQuery對象,所以不光只有表單能使用它,其他選擇器選取的元素也都能使用它,如以下JQuery代碼:


$(":checkbox,:radio").serialize();

複選框

var fields = $(":checkbox,:radio").serializeArray();
console.log(fields); //用FireBug输出

複選框

var obj = {a:1,b:2,c:3};
var k = $.param(obj);
alert(k); //输出a=1&b=2&c=3

複選框和選框單選框的值序列化為字串形式,只會將選取的值序列化。

在JQuery中還有一個與serialize()類似的方法--serializeArray(),該方法不是傳回字串,而是將DOM元素序列化後,傳回JSON格式的資料。 JQuery程式碼如下:


🎜rrreee🎜$.param()方法是serialize()方法的核心,用來將一個陣列或物件依照key/value進行序列化。 🎜🎜例如將一個普通的🎜物件序列化🎜:🎜🎜🎜🎜rrreee

以上是比較JQuery中serialize()、serializeArray()和param()的差異與使用方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn