0

jQuery 1.4.4を使用していますが、IDによって動的に日付ピッカーを追加しようとして立ち往生しています。コードは次のとおりです。

$(function () {
    $('#ListTableBody').find('input[id^="PickDate."]').each(function () {
        alert(this.id);
        $(this.id).datepicker();
    });
});

その場でIDを動的に生成するテーブルを使用しています。上記のコードは各IDを検出し、アラートを使用して確認しました。ループすると、this.idは正しいIDと入力があることを示していますが、何らかの理由でdatepickerが機能しませんか?また、エラーは発生しません。

私がここで間違っていることについて何か考えはありますか?

4

4 に答える 4

3

これを試して :

$('#ListTableBody').find('input[id^="PickDate."]').each(function() {                 
    $(this).datepicker();
});

id属性を取得する必要はありませんthis-jQueryオブジェクトをすぐに作成できます

于 2012-04-26T13:59:46.747 に答える
1

IDを使用する場合は、次のようにする必要があります。

$("#"+this.id).datepicker();

しかし、それを行う方がはるかに簡単です。

$(this).datepicker();
于 2012-04-26T13:58:05.560 に答える
1

代わりにクラスを使用します。IDは、ドキュメントごとに1回だけ使用されることになっています。またeach()、IDセレクターに適用しているという事実は、ページに複数のインスタンスがある可能性があることを示しています。

代わりに、などのわかりやすいクラス名を選択して.datepickerください。利点は、ページに複数のページを含めることができ、次のような式で日付ピッカーを初期化できることです。

$(document).ready(function() {
    $('input.datepicker').datepicker();
});

each()他に何もしていない場合は、ループは必要ありません。日付ピッカーを特定の領域内の入力に制限する場合#ListTableBody(必要に応じてページに複数のクラス名を含めることができるように、クラス名を使用することをお勧めします)、セレクターを変更するだけです。

$(document).ready(function() {
    $('#ListTableBody').find('input.datepicker').datepicker();
});
于 2012-04-26T14:08:57.723 に答える
0

日付ピッカーとして使用する必要がある各コントロールに同じクラスを配置できます。

    <script>
       $(function() {   
            $('.class').datepicker();
      });

    </script>
于 2012-04-26T13:59:51.177 に答える