如何用jQuery"追加"一个值而不是完全替换它?

Tor*_*ups 1 jquery

我理解val工作的方式是,当你这样做

$(".foo").val("x") 
Run Code Online (Sandbox Code Playgroud)

你实际上替换了输入的值.jQuery 2.x中的任何内容都支持类似函数的"追加"吗?我找到了一个单元/集成类似的场景,可以让我重现一个真实的但是...除了val完全替换输入的值而不是像我最终用户那样"只添加一个char".

Rok*_*jan 5

访问回调函数.val( cb )并返回与您选择的字符串连接的当前值:

$(".foo").val(function(i, currVal) {
   return currVal + "whatever";
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input class="foo" tyle="text" value="A-">      <!-- A-whatever -->
<input class="foo" tyle="text" value="B-">      <!-- B-whatever -->
Run Code Online (Sandbox Code Playgroud)

如果你想有一个jQuery的方法一样.valAppend()比你可以创建一个:

$.fn.valAppend = function( str ) {
  return this.val( this[0].value + str );
};

// Use like:
$(".foo").valAppend( "whatever" );
Run Code Online (Sandbox Code Playgroud)