2011-03-12 64 views
6

我正在jquery中使用佔位符函數。現在,我只是希望表單元素將其值改爲任何佔位符。我試了下面的代碼:

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

但它不起作用。經過一些測試後,我意識到在這種情況下使用$(this)會帶來問題。我該如何改變它,以便它遍歷所有表單元素並將其值更改爲佔位符屬性?

+1

'this'只能函數中不同,不是在沒有的功能的自變量。在這裏,'this'與在相同函數的這行代碼之外使用'this'相同。 – pimvdb 2011-03-12 15:08:38

回答

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

或:

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

而且這裏有一個live demo

5

大多數這些setter jQuery函數提供了一種方法來指定函數的返回值將被使用。這是一種使用$(this)的方法。

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

jQuery val() Reference

+0

你有趣的名字kapa:D – 2011-03-12 15:18:16

相關問題