输入转换为 UTF-16 jQuery 插件

on input convert to UTF-16 jQuery Plugin

我正在创建一个 jQuery 插件,它将转换 input[type='text'] 中的每个字符并在控制台中输出。

这就是我到目前为止所做的。我遇到的问题是即使有多个字符,它也只会计算第一个字符的 UTF-16 代码。

HTML

<!DOCTYPE html>
<html lang="en">
<body>
  <input type="text">
</body>
</html>

jQuery 插件

this.on("input", function() {
  for (i = 0; i < $(this).length; i++) {
    console.log($(this).val().charCodeAt(0));
  }
});

当前输出

如果我输入ab控制台只会显示97

预期输出

97 98

如何让它附加每个字符的值?提前致谢:)

因为$(this)是一个jQuery对象,$(this).length是匹配元素的个数,所以永远是1。

你想要像 $(this).val().length 这样的东西,当然,你应该将它存储在一个变量中而不是在每次迭代时创建一个新的 jQuery 对象:

// Untested code
this.on("input", function() {
  var text = $(this).val();
  var length = text.length;
  for (i = 0; i < length ; i++) {
    console.log(text.charCodeAt(i));
  }
});