我试图模仿placeholder行为,所以我尝试在页面加载时保存原始值。用这段代码。我来这里是因为这没用。值是空的。
$().ready(function() {
$("input").prop("placeHolder", $(this).val());
/*
also tried:
$("input").prop("placeHolder", $(this).attr("value"));
*/
}发布于 2014-09-09 16:14:36
试试这个:
$(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)确实引用了正在迭代的输入。
发布于 2014-09-09 16:09:38
在您的原始代码中,$(this)是而不是,是当前的input元素。它将是由this通过$().ready()传递的任何对象--可能是document对象。(我测试过了-是的!)
这应该能满足你的要求:
$('input').prop('placeholder', function() {
return this.value;
});这个版本的.prop将调用提供的函数,依次将每个元素作为this传递,从而允许直接访问DOM元素的其他属性。
发布于 2014-09-09 16:10:04
该属性区分大小写,因此应该是“占位符”。
$("input").prop("placeholder", function () {
return $(this).val()
});jsFiddle实例
https://stackoverflow.com/questions/25749322
复制相似问题