1

我知道 serialize 可以使用,<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&短名=2&短名=3

谢谢!

4

4 回答 4

2

您可以创建一个数组并将其作为 JSON 传递,

 var data=new Array();
    $('div.row').each(function(){
      data.push($(this).attr('shortname'))
    })
   var jsonString=JSON.stringify(data);
于 2012-11-15T03:46:20.503 回答
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,请将循环更改为 this。

$('div').find('[shortname]').each(function(){
    // same stuff
});

注意:我认为您希望短名称是一个数组。如果您在没有括号的情况下进行构造,您可能会一遍又一遍地覆盖“shortname”的值。

于 2012-11-15T03:43:38.117 回答
1

您可以使用这些值构建一个数组,并将该数组作为对象的一部分传递给 $.ajax 数据选项。

var shortnames = $('[shortname]').map(function(){
    return $(this).attr('shortname');
}).get();
ajax({
    ....
    data:{shortname:shortnames},
    ....
});
于 2012-11-15T03:52:58.257 回答
0

你可以做这样的事情......

小提琴

var serialized = '';

$('#serializeme div').each(function(){

    serialized = serialized + 'shortname=' + $(this).attr('shortname') + '&';

 }); 
于 2012-11-15T03:53:30.647 回答