我知道序列化适用于<FORM>
,但它也可以用于DIV吗?
<div class="row" shortname="1"></div>
<div class="row" shortname="2"></div>
<div class="row" shortname="3"></div>
<div class="row" shortname="4"></div>
如何获取所有DIV及其短名称属性并将所有内容传递给AJAX帖子?
喜欢短名称= 1&amp; shortname = 2&amp; shortname = 3
谢谢!
答案 0 :(得分:2)
你可以创建一个数组并将其作为JSON传递,
var data=new Array();
$('div.row').each(function(){
data.push($(this).attr('shortname'))
})
var jsonString=JSON.stringify(data);
答案 1 :(得分:1)
不,它无法使用div,所以你必须创建一个解决方案。如果我可以假设这些div包含在父div中,则此代码将起作用
var queryString = '';
var x = 0;
$('#parentdiv div').each(function(){
if(x) queryString += '&';
else x = 1;
queryString += 'shortname[]=' + $(this).attr("shortname");
});
如果它们没有包含在div中,并且您想要找到所有具有shortname属性的div,请将循环更改为此。
$('div').find('[shortname]').each(function(){
// same stuff
});
注意:我想你想要短名称是一个数组。如果你构造没有括号,你可能会一遍又一遍地覆盖“短名称”的值。
答案 2 :(得分:1)
您可以使用值构建数组,并将该数组作为对象的一部分传递给$ .ajax数据选项。
var shortnames = $('[shortname]').map(function(){
return $(this).attr('shortname');
}).get();
ajax({
....
data:{shortname:shortnames},
....
});
答案 3 :(得分:0)
你可以这样做......
var serialized = '';
$('#serializeme div').each(function(){
serialized = serialized + 'shortname=' + $(this).attr('shortname') + '&';
});