JQuery $(this).text().length 仅适用于 IE,不适用于 Chrome、IE 或 FF [重复]
Posted
技术标签:
【中文标题】JQuery $(this).text().length 仅适用于 IE,不适用于 Chrome、IE 或 FF [重复]【英文标题】:JQuery $(this).text().length works only in IE and not on Chrome, IE or FF [duplicate] 【发布时间】:2016-02-27 13:27:53 【问题描述】:我正在使用 jquery 为文本区域创建一个简单的字符计数器,以限制用户可以提交的字符数。我已经设置了一个keyup
事件处理程序来捕获文本更改事件。在 IE 上,$(this).text().length 完美。该事件被触发,当我检查文本区域的长度时,我得到了一个正确的数字。但是,同样的事情在 FF/Chrome 中不起作用。 text().length 始终返回零(注意图片中的 cnt = 0;),即使文本区域中有字符。附上代码和提琴手图像。有人能看到我做错了什么,使它在 IE 中工作,但在其他***浏览器中不能工作吗?提前致谢。
//for replying the post by viewers. Limiting the number chars
$(document).on('keyup', '.txtareareply', function (b)
var cnt = $(this).text().length;
var id = $(this).data("id");
$("#charMaxCountReply" + id).html(cnt + " of 1000 Character Max.")
if (cnt > 1000)
alert("You have reached the maximum number of characters allowed.");
$(this).html($(this).text().substring(0, 1000));
return;
);
【问题讨论】:
我的猜测是 .text 不是从输入中获取 值 的正确方法。 @KevinB 可以在 IE 上运行。那我应该试试val()
还是value
?
.val() 是 jQuery 对象上的方法,.value 是 dom 节点上的属性。使用对你所拥有的有意义的东西。 (你有一个 jQuery 对象)
@KevinB Bah,在我给出答案后看到了您的评论。对不起,应该让你用建设性的评论让他想通了!
成功了!谢谢你们。我喜欢 SO 的一件事是,总感觉你有几百万个哥哥 :)
【参考方案1】:
不要使用.text().length
,而是使用.val().length
。这适用于多个控件,并将解决您的问题。
【讨论】:
应该试一试。谢谢 被接受为答案,因为它确实是正确的答案。谢谢 Trasiva以上是关于JQuery $(this).text().length 仅适用于 IE,不适用于 Chrome、IE 或 FF [重复]的主要内容,如果未能解决你的问题,请参考以下文章