gpt4 book ai didi

JavaScript 错误 : Error: ta is not defined

转载 作者:行者123 更新时间:2023-11-30 08:12:57 25 4
gpt4 key购买 nike

我是 JavaScript 的新手,我正在尝试使用以下代码向文本字段添加字符计数器:

$(function(){
$('.txtclass').keypress(function(){
ta = $(this);
if(ta.val().length >= 350){
ta.val( ta.val().substr(0, 350) );
} else {
$("#counter span").text(350-ta.val().length);
}
});
});

setInterval('$("#counter span").text(350-ta.val().length);', 350);

我收到 JavaScript 错误:"Error: ta is not defined" 并将我指向代码中的特定行。

任何对正在发生的事情以及如何解决它的见解都将非常感激,因为我想在其他地方的网站中为其他文本字段添加更多计数器。

编辑:这是计数器的 html

 <div id="counter"><span>350</span> characters remaining.</div>
</div>

最佳答案

这就是它所说的意思。传递给 text 方法的值是表达式 350 - ta.va().length 的结果。运行此代码时尚 undefined variable ta

在我提出解决方案之前需要注意的几件事。

  1. 您在响应按键事件以 chop 用户输入方面是正确的,但不需要使用间隔来更新计数 - 只需在事件处理程序中更新它即可。
  2. 不要将传递给 setInterval 的函数放在引号中。这导致它通过 eval 运行,这既慢又安全。
  3. 将 jQuery 对象保存在事件处理程序之外的变量中,这样每次调用处理程序时都可以使用相同的对象。这会使用更少的内存,而且速度应该会稍微快一点。

下面是我将如何实现它:

$(function () {
var ta = $(".txtclass"),
counter = $("#counter span");

ta.keypress(function () {
var taValue = ta.val();

if (taValue.length >= 350) {
taValue = ta.val(taValue.slice(0, 350)).val();
}

counter.text(taValue.length);
});
});

关于JavaScript 错误 : Error: ta is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7863336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com