我试图模仿placeholder
行为,因此我尝试在页面加载时保存原始值。使用此代码。我在这里因为它不能正常工作。该值为空。
$().ready(function() {
$("input").prop("placeHolder", $(this).val());
/*
also tried:
$("input").prop("placeHolder", $(this).attr("value"));
*/
}
答案 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 强>