(!traditional && type == "object")) serialize(params, value, traditional, key)
else params.add(key, value)
})
}
//将obj转换为查询字符串的格式,traditional表示是否转换成传统的方式,至于传统的方式的意思看上面的注释
$.param = function(obj, traditional) {
var params = []
//注意这里将add方法定到params,所以下面serialize时才不需要返回数据
params.add = function(k, v) {
this.push(escape(k) + '=' + escape(v))
}
serialize(params, obj, traditional)
return params.join('&').replace(/%20/g, '+')
}
})(Zepto)
;
(function($) {
//序列化表单,返回一个类似[{name:value},{name2:value2}]的数组
$.fn.serializeArray = function() {
var result = [],
el
//将集合中的第一个表单里的所有表单元素转成数组后进行遍历
$(Array.prototype.slice.call(this.get(0).elements)).each(function() {
el = $(this)
var type = el.attr('type')
//判断其type属性,排除fieldset,submi,reset,button以及没有被选中的radio和checkbox
if (this.nodeName.toLowerCase() != 'fieldset' && !this.disabled && type != 'submit' && type != 'reset' && type != 'button' &&
//注意这里的写法,当元素既不是radio也不是checkbox时,直接返回true,
//当元素是radio或者checkbox时,会执行后面的this.checked,当radio或者checkbox被选中时this.checked得到true值
//这样就可以筛选中被选中的radio和checkbox了
((type != 'radio' && type != 'checkbox')
关键词:zepto是啥