$.fn.serialize() is close to what I want except that it only applies for <form>,how to do it for general <div> ?
<div>
<input type="text" name="var1" />
....
</div>
<div>
..
</dvi>
<div>
<input type="text" name="varN" />
....
</div开发者_StackOverflow>
jQuery's .serialize() method is not just for forms.
From the docs:
The
.serialize()method can act on a jQuery object that has selected individual form elements, such as<input>, <textarea>, and <select>. However, it is typically easier to select the<form>tag itself for serialization:
So just select the elements you want, and use .serialize():
var ser = $('input[name=var1],input[name=varN]').serialize();
I believe the best answer, as karim79 put it in a comment, is:
$("div:eq(0), div:eq(n)").find(":input").serialize();
You can create a form, clone your divs inside that, and then call .serialize() on that new form
$f = $('<form/>');
$('div').each(function(i,e) {
$f.append($(e).clone() )
})
$f.serialize();
But isn't it required by DTD for input to be wrapped in <form>?
加载中,请稍侯......
精彩评论