2011-03-13 60 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

相关问题