1追加html
.load(url,[data],[fn])
该方法载入远程html文件代码并插入至DOM中。默认使用GET方式传递,如果传递附加参数[data]时自动转换为POST方式。
url,待装入的html网页地址。string类型
data,可选,发送至服务器的key/value数据
fn,可选载入成功时回调函数
例如: 函数传递参数data,将以post提交
$("#feeds").load("feeds.jsp", {limit:25,fdd:"test"}, function(){
alert("The last 25 entries in the feed have been loaded");
});
.load函数函数可以请求action或某个servlet,如果servlet跳转到另外一个页面(/theTest.jsp),那么load函数就会加载跳转到得那个页面到元素中(myload)。
jQuery("#myload").load("${pageContext.request.contextPath}/test/myServlet",{page:"test.jsp"});
//由JSON字符串转换为JSON对象,如下所示obj就是json对象了
var str="{‘name‘:‘xiaoming‘,‘sex‘:‘male‘}"
var obj = eval(‘(‘ + str + ‘)‘);
通过eval操作json对象
var obj={‘name‘:‘xiaolin‘};
alert(eval(‘obj‘).name); //返回‘xiaolin‘
eval(‘obj‘).name=‘xiaoxiao‘;
alert(obj.name); //返回‘xiaoxiao‘
var str="[‘aa‘,‘bb‘,‘cc‘]";
var arrary1=eval(str);//得到str的数组对象。
**********
关于json2.js
javascript中创建json格式的数据对象的是直接将json格式的数据赋给一个var变量。如:
var o = {"name":"tn","code":"tc","children":[{"name":"c1","code":"c1"},{"name":"c2","code":"c2"}]};
这样我们创建了一个json格式的对象o,如果我们想要输出json对象的内容,需要导入json2.js。下载地址:http://www.json.org/js.html
然后将json2.js中的第一句:
alert(‘IMPORTANT: Remove this line from json2.js before deployment.‘);
注释掉,不然会出错。
然后使用json2.js中JSON.stringify(json对象);将json对象转换成一个字符串,这样就可输出json对象的内容。如下:
var s = JSON.stringify(o);
alert(s);
json2.js中的JSON.parse(json格式的字符串)转换为json对象。使用JSON.parse()方法时要注意每个属性必须用双引号括起来,否则会抛出异常。例如:
var string1=‘{"id":30,"name":"wjjjjj"}‘;
//不能写成"{‘id‘:30,‘name‘:‘wjjjjj‘}",否则会抛出异常,不能用单引号
JSON.parse(string1);
var kk=JSON.parse(string1);//将被转换为一个json对象
alert(kk.id);//将输出30
var string1=‘[{"id":30,"name":"wjjjjj"},{"id":60,"name":"dgfej"}]‘;
var kk=JSON.parse(string1);//将被转换为一个json对象
下面是将一个json格式的数组字符串转换成一个json对象,注意这个数组格式的字符串须用单引号括起来,且其中的数组元素用双引号括起来,数字可以不用引号括起来。
var string1=‘["fdfdf","dddddd",30]‘;
var kk=JSON.parse(string1);
jQuery.each(kk,function(i,field){
alert(field);
});
});
JSON.parse(data,function(key, value)),用于将json格式的字符串data转换为json对象,并调用function(key,value)。遍历其中的json对象,key对应每个json对象的key,value对应每个json对象的值。如:
var string1=‘[{"id":30,"name":"wjjjjj"},{"id":60,"name":"dgfej"}]‘;
var kk=JSON.parse(string1,function(key,value){
if(key=="name"){
//将输出每个json对象中key="name"对应的value的值,因此将输出wjjjjj和defej。
alert(value);
}
});
***********
fields是一个json对象,如果想输出它的内容。需要使用json2.js中JSON.stringify(fields);方法将fileds转换成字符串来查看其内容。如:
var s = JSON.stringify(fields);
alert(s);//将输出以下内容:
[{"name":"single","value":"Single"},{"name","mutiple","value","Multiple"},{"name","mutiple","value","Multiple3"},{"name":"check","value":"check2"},{"name":"radio","value":"radio1"}]
serialize与serializeArray()都是将元素的name属性作为key,我自定义jquery函数,返回json对象的表单元素:
jQuery.fn.objParam=function(){
var data={};
var fields =this.serializeArray();
jQuery.each( fields, function(i, field){
var key=field.name;
var keyvalue=$.trim(field.value);
if(keyvalue!=""){
data[key]=keyvalue;
}
});
return data;
};
traditional (可选)Boolean是否使用传统的方式浅层序列化。默认为false。
var params = { width:1680, height:1050 };
var str = jQuery.param(params);
$("#results").text(str);//结果:width=1680&height=1050
对比两种traditional序列化方式:
var myObject = {
a: {
one: 1,
two: 2,
three: 3
},
b: [1,2,3]
};
var recursiveEncoded = $.param(myObject);//深层次序列化
var recursiveDecoded = decodeURIComponent($.param(myObject));
//对于中文$.param使用encodeURIComponent进行了编码
var data={userId:12,name:‘张三‘,englishN:‘zhangsan‘}
alert($.param(data))
userId=12&name=%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD&englishN=zhangsan
例如使用$.param将数组传递到后台:
var data={};
data.items=[1,2,3];
var newSrc=$.extend({},src1,src2,src3...)//也就是将"{}"作为dest参数。
这样就可以将src1,src2,src3...进行合并,然后将合并结果返回给newSrc了。如下例:
var result=$.extend({},{name:"Tom",age:21},{name:"Jerry",sex:"Boy"})
那么合并后的结果
result={name:"Jerry",age:21,sex:"Boy"}
也就是说后面的参数如果和前面的参数存在相同的名称,那么后面的会覆盖前面的参数值。