1

シリアル化<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とそのshortname属性を取得して、すべてをAJAX投稿に渡すにはどうすればよいですか?

shortname = 1&shortname = 2&shortname=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 を見つけたい場合は、ループをこれに変更します。

$('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 に答える