Javascript jQuery设置input.value=input.title(或其他输入属性)
我试图弄清楚如何在页面加载时将文本字段的Javascript jQuery设置input.value=input.title(或其他输入属性),javascript,jquery,forms,this,Javascript,Jquery,Forms,This,我试图弄清楚如何在页面加载时将文本字段的输入值设置为其标题的值,作为显示占位符文本的一种方式。我使用的是HTML4严格的doctype。我不想将占位符文本存储在输入值中,因为我不想让没有javascript的人在键入之前删除文本。我希望它与javascript一起添加,然后在输入获得焦点时删除。我使用了focus()和blur()方法,但是我不知道如何编写初始pageload函数来将输入的标题传递给val()函数 我目前有以下代码: // This doesn't work, it grabs
输入值设置为其标题的值,作为显示占位符文本的一种方式。我使用的是HTML4严格的doctype。我不想将占位符文本存储在输入值中,因为我不想让没有javascript的人在键入之前删除文本。我希望它与javascript一起添加,然后在输入获得焦点时删除。我使用了focus()
和blur()
方法,但是我不知道如何编写初始pageload函数来将输入的标题传递给val()
函数
我目前有以下代码:
// This doesn't work, it grabs the page title:
$('#item-search').val(this.title);
// Works:
$('#item-search').focus(function() {
if (this.value == this.title) {
this.value = '';
}
});
// Works:
$('#item-search').blur(function() {
if (this.value == '') {
this.value = this.title;
}
});
此
引用当前范围。在第一个示例中,它指的是文档
你可能想要
$('#item-search').val($('#item-search').attr('title'));
更好的是:
var $itemSearch = $('#item-search');
$itemSearch.val($itemSearch.attr('title'));
试试这个:
$('#item-search').val($('#item-search').attr('title'));
在这一行中,请参阅文档(html
)并设置
。要完成您的工作,请执行以下操作:
$('#item-search').val($('#item-search').attr('title'));
请试试这个
$('#item-search').val($("#item-search").attr("title"));
只需添加另一个变体,.val()
就可以解决您的问题:
$('#item-search').val(function () {
return this.title;
});
attr('title')上缺少单引号代码>修复了,谢谢,有时使用jquery框架和不使用jquery框架会让人困惑。它们是针对这种情况的特定黑客,不会作为一般解决方案。其他答案有效,但这正是我所寻找的。谢谢在我的情况下,您的第二个解决方案是性能改进吗?我想知道定义$itemSearch变量然后将其用于我的3个函数是否比让jQuery遍历DOM 3x更快,或者如果同一个选择器被多次调用,jQuery是否会缓存该元素?是的,但我不确定它是否明显。@Timmakey与ID选择器没有太大区别,但这是一个通用的最佳实践(对于更复杂的选择器,这将成为一个问题)。此外,建议只定义一次选择器,以防您必须更改它“#项搜索”
基本上是一个常量。@bažmegakapa,这很有意义——我可以看出它如何与复杂选择器产生巨大的性能差异,定义一次变量肯定更易于维护。当你说“”#item search“
基本上是一个常数”时,你的意思是因为它是一个ID选择器(ID选择器总是和处处都是唯一的)?@TimMackey它可以应用于任何选择器。我的意思是选择器不会真正改变,它们不是“变量”,而是“常量”,所以基本上可以为它们定义一个常量(Javascript没有)。
$('#item-search').val(function () {
return this.title;
});