输入转换为 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));
}
});
当前输出
如果我输入a
和b
控制台只会显示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));
}
});
我正在创建一个 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));
}
});
当前输出
如果我输入a
和b
控制台只会显示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));
}
});