1

属性ORIGINALが初期値に設定されている入力テキストボックスがたくさんあるので、ユーザーがテキストボックスの値を変更すると、jQueryは変更されたアイテムを強調表示できます(テキストボックスの現在の値をORIGINAL属性の値と比較することによって)

私が今やろうとしているのは、各テキストボックスのORIGINAL属性の値に基づいて、すべてのテキストボックスを元の値に戻すためにクリックできるボタンをユーザーに提供することです。

$('input[type=text]').val($(this).attr('original'));

上記は機能せず、理由がわかりません。

4

4 に答える 4

3

使用each

$('input:text').each(function() {
    $(this).val($(this).attr('original')); // or this.value = $(this).attr('original');
});

$('input[type=text]').val()一致するコレクションの最初の要素の値のみを返すため、ワンライナーを使用することはできません。$(this)あなたの例でそれが何をすると思うかを意味するのではありません:

$('input[type=text]').val($(this).attr('original'));

実際には、現在のスコープを指します。eachjQueryを使用してコレクションを反復処理すると、そのコールバックが呼び出され、反復処理の現在の要素が現在のスコープ($(this)またはthis)として割り当てられます。

補足として、input:textはより美しく、より簡潔な言い方ですinput[type=text]

于 2010-05-06T13:29:54.593 に答える
0

このようなもの:

$('input[type=text]')each(function(){$(this).val($(this).attr('original'));}
于 2010-05-06T13:29:53.457 に答える
0

val関数を受け入れます:

$('input:text').val(function () {
    return $(this).attr('original');
});
于 2010-05-06T14:06:08.013 に答える
0

任意の入力で.defaultValueを呼び出して、元の値を取得できます

于 2010-05-06T13:40:59.840 に答える