jQuery 设置 input.value = input.title(或其他输入属性)

jQuery setting input.value = input.title (or other input attribute)

本文关键字:input 其他 输入 属性 title 设置 value jQuery      更新时间:2023-09-26

我正在尝试弄清楚如何将文本字段的input值设置为页面加载时title的值,以此作为显示占位符文本的一种方式。我使用的是HTML4严格文档类型。我不想将占位符文本存储在输入值中,因为我不希望没有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;
    } 
});

只是为了添加另一个变体,.val()可以接受一个函数作为其参数,从而解决您的this问题:

$('#item-search').val(function () {
    return this.title;
});

>this是指当前作用域。在您的第一个示例中,它指的是 document .

你可能想要。

$('#item-search').val($('#item-search').attr('title'));

甚至更好:

var $itemSearch = $('#item-search');
$itemSearch.val($itemSearch.attr('title'));
$('#item-search').val(this.title);

在此行中,this引用文档( html ) 并设置<title> 。要完成您的工作,请执行以下操作:

$('#item-search').val($('#item-search').attr('title'));

试试这个:

$('#item-search').val($('#item-search').attr('title')); 

请尝试这个。

$('#item-search').val($("#item-search").attr("title"));