Jquery源码分析---Ajax分析
2010-09-14 13:39:06 来源:WEB开发网上面的代码①可以看出load的url参数可以指定选择符,来筛选载入的 HTML 文档,DOM 中将仅插入筛选出的 HTML 代码。 语法形如 "url #some > selector"。在④处通过html的方式插入到元素的内部(取代)。其支持的response应该是html的片断。
param
在②处通过调用了jQuery.param(params)来完成对params的key/value的对象形式转换成查寻字符串的形式。
// 串行化form子元素组成的数组或对象形式查询字符串
param : function(a) {
var s = [];
function add(key, value) {
s[s.length] = encodeURIComponent(key) + '='
+ encodeURIComponent(value);
};
/ 对于数组的参数,每个元素({name:xx,value:yy})都串行化为key/value的字符串。
if (a.constructor == Array || a.jquery)
jQuery.each(a, function() {
add(this.name, this.value);
});
// 对于对象{a1:{name:xx,value:yy},a2:{name:xx,value:yy}}
// 都串行化为key/value的字符串。
else
for (var j in a)
// value是数组,key 名字要重复
if (a[j] && a[j].constructor == Array)
jQuery.each(a[j], function() {
add(j, this);
});
else
add(j, jQuery.isFunction(a[j]) ? a[j]() : a[j]);
// 返回生成字符串
return s.join("&").replace(/%20/g, "+");
}
更多精彩
赞助商链接