如何在 keyup 事件中获取已删除的字符

How to get a deleted character on keyup event

我想在退格事件中获取最后删除的字符,以便我可以相应地修改其他一些 div。我正在寻找的功能如下:

$('.tags').keyup(function (e) {
   if (e.keyCode == 8) {
    var t = e.target;
    let deletcChar = //find the deleted character
        console.log("deleted char is:", deletedChar);
        //do something about deletcChar             
    }
});

我在这里找到的解决方案(如 this)都非常复杂并且基于按键。

一个更简单的解决方案 here 使用 (e.target.value[even.target.selectionStart - 1]),它不适用于 keyup。

所以我想知道 jquery 中是否有 keyup() 的直接方法?

您可以在页面加载时设置一个数据属性来存储最后的状态,然后在每次更新时从中找到删除的字符

$(document).ready(function() {
  $('.tags').each(function() {
    $(this).attr('data-laststate', $(this).val())
  })
  $('.tags').keyup(function(e) {
    if (e.keyCode == 8) {
      let deletedChar = $(this).attr('data-laststate').slice(-1);
      console.log("deleted char is:", deletedChar);
    }
    $(this).attr('data-laststate', $(this).val())
  });
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class='tags' value='php,html,asp' />