关于jQuery.form中formSerialize()等函数的适用对象

几个月前写一个页面,要用到Ajax提交,于是写了几行jQuery:

……
var formData = $("form")[0].formSerialize();
……

然后死活调不通……这一句总说“对象不支持该方法”

无奈,给form对象分了个id,然后改成这样:

……
var formData = $("#main-form").formSerialize();
……

总算是过了。

最近要改一个框架,又要Ajax提交,于是把原来的句子抄了过来。

框架嘛,总要有点自适应能力,于是大笔一挥……又改成了$("form")[0]…………(捂脸)

调试器当然是各种甩脸色………………

无奈中又找回原来的语句左看右看……突发奇想:

这formSerialize()该不会只能用在jQuery选择器后面吧?

然后改了一笔:

……
var formData = $("form:first").formSerialize();
……

然后……过了……

过了……

了……

ajaxSubmit()遇到了同样的问题,照方抓药也过了……

看来jQuery.form里的函数只能跟在选择器后面?以后写这些函数要小心了。