jQuery对象的序列化详解
⼀、param() ⽅法创建数组或对象的序列化表⽰。
  该序列化值可在进⾏ AJAX 请求时在 URL 查询字符串中使⽤。
语法:
  jQuery.param(object,traditional)
  object要进⾏序列化的数组或对象
  traditional规定是否使⽤传统的⽅式浅层进⾏序列化(参数序列化)。
  $.ajax()设置的 traditional参数实际上是设置 jQuery.param 的traditional 参数,默认为false,当设置为true后,会导致多层次的对象序列化为[object object](浅序列化)
<html>
<head>
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
personObj=new Object();
personObj.firstname="Bill";
personObj.lastname="Gates";
personObj.age=60;
$("button").click(function(){
$("div").text($.param(personObj));
});
});
</script>
</head>
<body>
<button>序列化对象</button>
<div></div>
</body>
</html>
//输出结果:firstname=Bill&lastname=Gates&age=60&eyecolor=blue
⼆、serialize() ⽅法通过序列化表单值,创建 URL 编码⽂本字符串
  您可以选择⼀个或多个表单元素(⽐如 input 或⽂本框),或者 form 元素本⾝。
  序列化的值可在⽣成 AJAX 请求时⽤于 URL 查询字符串中。
  .serialize() ⽅法创建以标准 URL 编码表⽰的⽂本字符串。它的操作对象是代表表单元素集合的 jQuery 对象。
  .serialize() ⽅法可以操作已选取个别表单元素的 jQuery 对象,⽐如 <input>, <textarea> 以及 <select>。不过,选择 <form> 标签本⾝进⾏序列化⼀般更容易些。
  注意:1、只会将“成功的控件”序列化为字符串。(即不能被禁⽤)
        2、如果不使⽤按钮来提交表单,则不对提交按钮的值序列化。
     3、如果要表单元素的值包含到序列字符串中,元素必须使⽤ name 属性。
<html>
<head>
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$("div").text($("form").serialize());
});
});
</script>
</head>
<body>
<form action="">
First name: <input type="text" name="FirstName" value="Bill" /><br />
Last name: <input type="text" name="LastName" value="Gates" /><br />
</form>
<button>序列化表单值</button>
<div></div>
</body>
</html>
三、serializeArray() ⽅法通过序列化表单值来创建对象数组(名称和值)。
  您可以选择⼀个或多个表单元素(⽐如 input 或 textarea),或者 form 元素本⾝。
  语法:$(selector).serializeArray()
详细说明:
  serializeArray() ⽅法序列化表单元素(类似),返回 JSON 数据结构数据。
  注意:此⽅法返回的是 JSON 对象⽽⾮ JSON 字符串。需要使⽤插件或者第三⽅库进⾏字符串化操作。
  返回的 JSON 对象是由⼀个对象数组组成的,其中每个对象包含⼀个或两个名值对 —— name 参数和 value 参数(如果 value 不为空的话)。举例来说:
[
{name: 'firstname', value: 'Hello'},
{name: 'lastname', value: 'World'},
{name: 'alias'}, // 值为空
]
  .serializeArray() ⽅法使⽤了 W3C 关于(有效控件)的标准来检测哪些元素应当包括在内。特别说明:元素不能被禁⽤(禁⽤的元素不会被包括在内),并且元素应当有含有 name 属性。提交按钮的值也不会被序列化。⽂件选择元素的数据也不会被序列化。
  该⽅法可以对已选择单独表单元素的对象进⾏操作,⽐如 <input>, <textarea>, 和 <select>。不过,更⽅便的⽅法是,直接选择 <form>标签⾃⾝来进⾏序列化操作。
$("form").submit(function() {
console.log($(this).serializeArray());
return false;
});
//上⾯的代码产⽣下⾯的数据结构(假设浏览器⽀持 console.log):
[
{
name: a
value: 1
},
{
name: b
value: 2
},
{
name: c
value: 3
},
{
name: d
value: 4
},
jquery字符串截取{
name: e
value: 5
}
]
总结:
1、param(),数组或对象序列化表⽰
2、serialize(),序列化表单(成功元素、必须有name属性)
3、serializeArray(),序列化表单来创建对象数组,返回JSON对象

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。