你可以在单行代码中使用jQuery的$(this)来修改元素吗?

Zak*_*Zak 6 html javascript jquery placeholder

我正在jquery中处理占位符函数.现在,我只想让表单元素将其值更改为占位符.我尝试了以下代码:

$('input:text').val($(this).attr('placeholder'));
Run Code Online (Sandbox Code Playgroud)

但它不起作用.经过一点点测试后,我意识到问题在于$(this)在这种情况下使用.如何更改它以便循环遍历所有表单元素并将其值更改为其占位符属性?

Dar*_*rov 8

$('input:text').val(function() {
    return $(this).attr('placeholder');
});
Run Code Online (Sandbox Code Playgroud)

要么:

$('input:text').attr('value', function() {
    return $(this).attr('placeholder');
});
Run Code Online (Sandbox Code Playgroud)

这是一个现场演示.


kap*_*apa 5

这些setter jQuery函数中的大多数提供了一种指定将使用其返回值的函数的方法.这是一种利用的方式$(this).

$('input:text').val(function () {
  return $(this).attr('placeholder');
});
Run Code Online (Sandbox Code Playgroud)

jQuery val()参考