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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

加载Jquery插件的图像

使用jQuery遍历某几个class的元素并修改text内容,有简便方法吗?

jquery获取checkboxlist的text的值

在按钮上使用 'this' 的 jQuery 选择

jQuery 截取double数据 重新赋值

jquery $选择符号的简单实现