Можете ли вы использовать $ (this) jQuery в однострочном коде для изменения элементов? - PullRequest
6 голосов
/ 12 марта 2011

Я работаю над функцией-заполнителем в jquery. Прямо сейчас я просто хочу, чтобы элемент формы изменил свое значение на то, что является его заполнителем. Я попробовал следующий код:

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

Но это не работает. После небольшого тестирования я понял, что проблема заключается в использовании $(this) в этом контексте. Как я могу изменить это так, чтобы он перебрал все элементы формы и изменил их значение на их атрибут-заполнитель?

Ответы [ 2 ]

8 голосов
/ 12 марта 2011
$('input:text').val(function() {
    return $(this).attr('placeholder');
});

или:

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

А вот и живая демонстрация .

5 голосов
/ 12 марта 2011

Большинство этих функций setQuery предоставляют способ указать функцию, возвращаемое значение которой будет использовано.Это способ использовать $(this).

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

jQuery val () Ссылка

...