2

JQuery v1.7.2

ユーザーがドロップダウンから選択した後、画面に要素を追加しています。私はこれを.append()で行っています:

var html = '<li><input type="hidden" name="hidden_' + ID + '" id="hidden_' + ID + '" value="' + ID + '"/><p>' + Name + '<a href="#" onClick="remove($(this));">Close</a></p></li>'
$('#sortable').append(html);

フォームが送信されたら、非表示の各フィールドを調べて、それらの値と現在の順序を取得する必要があります(ユーザーはそれらをページの上下に移動できます)。私はこれを.index()で行おうとしています:

$('#sortable input:hidden[id*="hidden_"]').each(function(){
    alert($(this).val());
    alert($(this).index());
}); 

このコードを実行すると、値は正常に処理されますが、インデックスは常に0です。すべてをラップしてみました

$(function () {
    $("#create").on("submit", function (event) {
    });
});

しかし、それもうまくいきませんでした。

私が間違っていることはありますか、それとも要素を追加したためにこれが起こっていますか?

4

1 に答える 1

3

each関数の最初のパラメーターは、現在のループのインデックスです。

.each( 関数(インデックス, 要素) )

$('#sortable input:hidden[id^="hidden_"]').each(function(index){
    alert(this.value);
    alert(index);
});
于 2012-08-30T20:18:02.577 に答える