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

时间:2011-03-12 15:06:15

标签: javascript jquery placeholder html

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

$('input:text').val($(this).attr('placeholder'));

但它不起作用。经过一段时间的测试后,我意识到问题在于在该上下文中使用$(this)。如何更改它以便循环遍历所有表单元素并将其值更改为其占位符属性?

2 个答案:

答案 0 :(得分:8)

$('input:text').val(function() {
    return $(this).attr('placeholder');
});

或:

$('input:text').attr('value', function() {
    return $(this).attr('placeholder');
});

这是一个live demo

答案 1 :(得分:5)

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

的方法
$('input:text').val(function () {
  return $(this).attr('placeholder');
});

jQuery val() Reference