财产分配不起作用

时间:2014-09-09 16:06:16

标签: jquery domready prop

我试图模仿placeholder行为,因此我尝试在页面加载时保存原始值。使用此代码。我在这里因为它不能正常工作。该值为空。

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

3 个答案:

答案 0 :(得分:2)

在原始代码中$(this) 当前input元素。它是由this传递给$().ready()的任何对象 - 可能是document对象。 (我测试过 - 它是!)

这应该符合您的要求:

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

此版本的.prop将调用提供的函数,将每个元素依次传递为this,允许直接访问该DOM元素的其他属性。

答案 1 :(得分: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());
});

这适用于一个输入,如果您想要另一种方式使其适用于所有输入,这也将起作用:

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

请注意,在这种情况下,$(this)确实引用了正在迭代的输入。

答案 2 :(得分:1)

该属性区分大小写,因此它应该是“占位符。您可以使用函数来设置属性:

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

<强> jsFiddle example