这是我的代码:
$.fn.serializeArrayCustom = function(options) {
options = options || {
selectors: [
"input",
"textarea",
"select"
]
};
// this object
var that = $(this);
// return value
var retVal = [];
// string for jQuery selector
var sel_string = "";
// make string for selector
for(var i in options.selectors) {
sel_string += that.selector + " " + options.selectors[i] + ", ";
}
sel_string = sel_string.substring(0, sel_string.length - 2);
// select all tags in this object
var elem = $(sel_string);
// add result at "return value : retVal"
elem.each(function() {
var obj = $(this);
if(typeof(obj.attr("name")) != "undefined") {
retVal.push({"name" : obj.attr("name"), "value" : typeof(obj.attr("value")) != "undefined" ? obj.attr("value") : ""});
}
});
return retVal;
}
首先,对不起,简短的英语..
我之所以这样做是因为我想获取任何不在表单标签中的HTML标签的信息。 (对于ASP ..) 但是,此代码需要“名称”和“值”属性。
“options”(在我的代码中)应该是标记名称的数组,或者可以是jQuery选择器。 (但是如果你不能使用方法“.val()”获取值,你就无法收集信息)
默认:
[
"input",
"textarea",
"select"
]
选项可以是:
[
"input[name='test']",
"select[name='can_use']",
...
]
此函数返回:
val = [{"name" : "(name_of_tags)", "value" : "(value_of_tags)"}],
...
我在Chrome中测试了这段代码。
告诉我应该做些什么来改进这段代码。