Javascript 输入时仅获取新的输入值

Javascript 输入时仅获取新的输入值,javascript,jquery,html,Javascript,Jquery,Html,我有一个文本输入,在那里我得到输入并使用它。我有: $(myinput).on('input', function() { $(somediv).append($(this).val()); }); 我想继续使用append函数,但问题是在每个输入上,整个input val()都被追加。因此,当我单击“a”时,它会添加“a”,但当我在a之后单击“b”时,它会附加“ab”而不是“b” 有没有办法只获取最近的.input事件的输入而不清除输入框?您可以使用.text()而不是.append()。

我有一个文本输入,在那里我得到输入并使用它。我有:

$(myinput).on('input', function() {
 $(somediv).append($(this).val());
});

我想继续使用append函数,但问题是在每个输入上,整个input val()都被追加。因此,当我单击“a”时,它会添加“a”,但当我在a之后单击“b”时,它会附加“ab”而不是“b”

有没有办法只获取最近的.input事件的输入而不清除输入框?

您可以使用
.text()
而不是
.append()
。这将设置整个文本,而不仅仅是附加文本

$(somediv.text($(this.val())

或者可以使用字符串的最后一个字符

$(somediv.text($(this.val().slice(-1))
见:

超时是为了做不重叠的事情。
您也可以尝试不使用timoeout

我假设您想使用
append
,因为
somediv
中还有其他您不想丢失的内容。如果是这种情况,您可以创建一个子元素来接收文本,只附加一次,然后在
input
字段更改时更改其内容:

var receiver = $('span');
$(somediv).append(receiver);

$(myinput).on('input', function() {
 receiver.html($(this).val());
});

您还可以绑定到
keyup
事件:

$(document).on('keyup', '#inputID', function(e){
     var key = String.fromCharCode(e.which);
    $('div').append(key);
});

我想继续使用append函数吗?为什么?您想使用
.append
,但不想追加?@codehx我使用的是
$(somediv.text()
而不是append,但这破坏了div中的一些其他html,然后为可替换内容添加了一个id为的元素(比如
)。然后您可以自由使用
$(“#可替换”).text(“您的文本”)
,如果您想这样做,我可以发布一个答案。@codehx是的,我想这是可行的
var receiver = $('span');
$(somediv).append(receiver);

$(myinput).on('input', function() {
 receiver.html($(this).val());
});
$(document).on('keyup', '#inputID', function(e){
     var key = String.fromCharCode(e.which);
    $('div').append(key);
});