3

まず第一に、私は jQuery-UI を使用しておらず、最新の jQuery のみを使用しています!

次のリストがあります。

<ul id="audio_list">
    <li id="trackid_1"></li>
    <li id="trackid_5"></li>
    <li id="trackid_2"></li>
    <li id="trackid_4"></li>
    <li id="trackid_3"></li>
</ul>

次に、このリストをシリアル化し、次のように配列として変数に保存したいと思います。

var myaudiotracks = jQuery('#audio_list').serialize();

もちろん、何かが欠けているか、jQuery のみでリストをシリアル化できないため、空の文字列しか取得できません。

私が達成しようとしているのは、この変数を配列として PHP スクリプトに送信することです。変数を投稿したときの結果は次のようになります。

trackid[] 1
trackid[] 5
trackid[] 2
trackid[] 4
trackid[] 3

この結果を得る方法はありますか?

4

3 に答える 3

5

試す

var array = jQuery('#audio_list li').map(function(){
    return 'trackid[]=' + this.id.match(/(\d+)$/)[1]
}).get()
console.log(array.join('&'))

デモ:フィドル

于 2013-09-11T02:52:30.797 に答える
1

serialize()フォーム要素のセットを送信用の文字列としてエンコードすることです。

内部.each()のすべての要素を使用してループしてみてください:lidiv

$(document).ready(function(){
    var myaudiotracks = new Array();
    jQuery('#audio_list li').each(function(){
        myaudiotracks.push($(this).attr("id").split("trackid_")[1]);
    });
    console.log(myaudiotracks);
});

DEMO FIDDLE

于 2013-09-11T02:51:44.287 に答える
0

このような jQuery シリアル化関数を使用することはできません。フォーム要素に対してのみ機能するため、そのような結果を取得したい場合は、これを試してください。

<ul id="audio_list">
    <li id="trackid_1"><input type="hidden" name="trackid" value="1"></li>
    <li id="trackid_5"><input type="hidden" name="trackid" value="5"></li>
    <li id="trackid_2"><input type="hidden" name="trackid" value="2"></li>
    <li id="trackid_4"><input type="hidden" name="trackid" value="4"></li>
    <li id="trackid_3"><input type="hidden" name="trackid" value="3"></li>

var myaudiotracks = jQuery('#audio_list li').serialize();
于 2013-09-11T02:53:48.800 に答える