访问元素在.val(),. text()等中的值,无需双重选择或缓存

时间:2010-11-04 17:38:31

标签: javascript jquery

是否有一种简单的方法可以引用调用.val()或.text()的元素值而无需双重选择或缓存?

例如:

//NO
$(this).val($(this).val() + 'something');

//NO
var $this;
$this.val($this.val() + 'something');

相反,使用诸如$& .replace()

中的令牌
'some string'.replace('str', '$&123');
//results - 'some str123ing'

感谢。

1 个答案:

答案 0 :(得分:8)

您可以将功能传递给.val(),如下所示:

$(this).val(function(i, currentVal) { return currentVal + 'something'; });
//another example:
$(this).val(function(i, cVal) { return cVal.replace('str', '$&123'); });

这适用于任意数量的元素,函数i是索引,currentVal$(this).val()可以获得的。只需在该函数中返回您想要的新值。