2011-03-13 88 views

回答

3

嘗試:

$('input[type=text]').each(function() { 
    $(this).val($(this).attr('default-value')); 
}); 

與你的問題是,$(this)不是你在使用它的上下文中定義

+0

謝謝,這樣做的訣竅:D – famagusta 2011-03-13 21:52:01

-1

因爲你沒有引用正確的元素...

您輸入的VAL立即分配給的$(this)當前範圍,而不是你所得到的元素。

$(":text").each(function() { $(this).val($(this).attr('default-value')); }); 
+1

我認爲你在函數中缺少一個返回值... – Chandu 2011-03-13 21:50:14

+0

是的,這不起作用,請參閱jQuery API:http://api.jquery.com/val/ – kevmo314 2011-03-13 21:54:13

2

這是行不通的,因爲this上下文。不是你所期望的。試試這個:

$('input[type=text]').each(function(){ 
    var $this = $(this); 
    $this.val($this.attr('default-value')); 
}); 
+0

謝謝你,Simplecoder。 – famagusta 2011-03-13 21:52:23

1

我想你想:

$('input[type=text]').val(function(i,e) { return $(e).attr('default-value'); });

5
$('input[type=text]').each(function() { 
    $(this).val($(this).attr('default-value')); 
}); 

thisval()調用內部未引用的元素,但它只是功能的情況下,你」重新運行這個單線程。另外,在定義自定義屬性時,您可能會考慮早些時候投資於HTML5並使用「data- *」約定:在HTML5中,定義自定義屬性是合法的,只要它們的前綴爲「data-」即可。所以,我會使用「data-default」而不是「default-value」。

+0

好的提示與數據。 – Nic 2011-03-13 21:54:05

+0

與HMTL5慣例一樣:這不是我的選擇。非常感謝你提出這個問題。 – famagusta 2011-03-13 21:55:08