1

動作を模倣しようとしているplaceholderので、ページの読み込み時に元の値を保存しようとしています。このコードを使用して。機能していないのでここにいます。値は空です。

$().ready(function() {
  $("input").prop("placeHolder", $(this).val());
  /*
  also tried:
       $("input").prop("placeHolder", $(this).attr("value"));
  */
}
4

3 に答える 3

2

元のコードでは、現在の要素$(this)ではありません。渡されたinputオブジェクトは何でも-おそらくオブジェクトです。(私はテストしました-そうです!)this$().ready()document

これはあなたが必要とすることをするはずです:

$('input').prop('placeholder', function() {
    return this.value;
});

このバージョンの.propは、指定された関数を呼び出し、各要素を として順番に渡し、thisその DOM 要素の他のプロパティに直接アクセスできるようにします。

于 2014-09-09T16:09:38.810 に答える
2

これを試して:

$(document).ready(function(){
    $("input").prop("placeholder", function(){
        return $(this).val()
    });
});

$().ready()私はあなたが$(document).ready()方法を参照していると思います。

あなたの場合$(this)、あなたのinput. この文が入っている親を取得しています。この場合、$().

あなたは私が上に書いたことをすることができますか、これもうまくいきます:

$(document).ready(function(){
    $("#input_id").prop("placeholder", $("#input_id").val());
});

これは 1 つの入力に対して機能します。別の方法ですべての入力に対して機能させる場合は、これも機能します。

$(document).ready(function(){
    $("input").each(function(){
        $(this).prop("placeholder", $(this).val());
    });
});

$(this)この場合、反復される入力を参照することに注意してください。

于 2014-09-09T16:14:36.177 に答える
1

属性は大文字と小文字が区別されるため、「プレースホルダー」にする必要があります。また、関数を使用して属性を設定できます。

$("input").prop("placeholder", function () {
    return $(this).val()
});

jsFiddle の例

于 2014-09-09T16:10:04.770 に答える