0

悪いタイトルで申し訳ありませんが、以下のコードのようなものがあります

$('[data-value]').each(function() {
            var $this = $(this);
            $this.val($this.data('value'));
});

<select data-value="14:00">
    <option>12:00</option>
    <option>13:00</option>
    <option>14:00</option>
    <option>15:00</option>
</select>

目標は、リスト内の「データ値」を簡単に事前選択することです。

ページの初期化後に選択要素を追加する場合を除いて、コードは完全に機能します。

たとえば、これは機能しません

$('body').append('<select data-value=yellow><option>black</option><option>yellow</option><option>red</option></select>');

ページの初期化後に DOM 要素を追加した場合でも、どうすれば機能させることができますか?

ありがとう

4

1 に答える 1

0

わかりましたので、次のようなものを使用できます:

新しい選択要素をチェックし、クラスが「処理されていない」要素が見つかった場合は、それらを処理します。

function checkNewSelects() {
    $('select').not(".processed").each(function() {
        var $this = $(this);
        $this.val($this.data('value'));
        $this.addClass('processed');
    });
    setTimeout(checkNewSelects, 300);
}
setTimeout(checkNewSelects, 300);
于 2012-07-13T09:09:01.693 に答える