javascript - 如何使用javascript计算textarea中输入字符的数量?

标签 javascript html textarea

我不知道为什么当我将它放在函数中时内部 HTML 不起作用,但当我在我的控制台中尝试相同时它工作正常。

这是我的代码。 (这是为了字符数。)

for (var i = 0; i < document.getElementsByClassName("input-content").length; i++) {
    document.getElementsByClassName("input-content")[i].onkeyup = function () {
        console.log(this);
        var text_max = 99;
        var text_length = this.value.length;
        var text_remaining = text_max - text_length;
        document.getElementsByClassName("character-count")[i].innerHTML = "Character count:" + text_length + "/" + text_max;
    }
}

我的 HTML

<textarea type="text" class="input-content"></textarea>
<p class="character-count"></p>

我知道这可能是我错过的一些愚蠢的事情。

PS:我正在寻找纯 JavaScript 的答案。请不要推荐 jQuery。

更新:当我不使用 onkeyup 事件但计数不增加时它工作正常

    for(var i=0; i<document.getElementsByClassName("input-content").length;i++)
{
 var text_max = 99;
 var text_length = document.getElementsByClassName("input-content")[i].value.length;
 var text_remaining = text_max - text_length;
 document.getElementsByClassName("character-count")[i].innerHTML="Character count:" +text_length+"/"+text_max;    
 }

最佳答案

您可以为索引使用闭包:

for (var i = 0; i < document.getElementsByClassName("input-content").length; i++) {
    document.getElementsByClassName("input-content")[i].onkeyup = function (i) {
        return function () {
            console.log(this);
            var text_max = 99;
            var text_length = this.value.length;
            var text_remaining = text_max - text_length;
            document.getElementsByClassName("character-count")[i].innerHTML = "Character count:" + text_length + "/" + text_max;
        };
    }(i);
}
<textarea type="text" class="input-content"></textarea>
<p class="character-count"></p>

关于javascript - 如何使用javascript计算textarea中输入字符的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36641430/

相关文章:

javascript - Angular 2+ HTTP POST 和 GDrive API。带名称的断点续传文件上传

html - CSS 问题 - 960.gs

javascript - 如何在 ng-blur 中将输入元素作为参数传递?

html - 如何将文本垂直居中放置在内容较高的跨度旁边的跨度中?

textarea - 修改 Electron 文本区域/菜单上的撤消/重做行为

css - IE 和 Edge 中的文本区域边框

php - 在 php 中处理新行

javascript - Highcharts 文本气泡

javascript - DIV 风格和 DIV 位置不一致

javascript - Facebook API : Can I get user's public URL in v2