运行 同一页面上 2 个(或更多)实例的脚本

Running a script for 2 (or more) instances on same page

我的 Shopify 商店有一个“剩余字符数”计数器,它显示客户在文本框中还剩下多少字符可以输入。当我在页面上有一个文本框时,它工作得很好,但如果有两个或更多,倒计时文本根本不显示。关于如何在同一页面上多次将其发送到 运行 有什么想法吗?

$(document).ready(function() {

    var text_max = $('#line_item_text').attr('maxlength');
$('#personalization_feedback').html(text_max + ' characters remaining ');

$('#line_item_text').keyup(function() {
    var text_length = $('#line_item_text').val().length;
    var text_remaining = text_max - text_length;
 $('#personalization_feedback').html(text_remaining + ' characters remaining ');
});


});

而不是在 HTML 元素上使用 id,你需要使用 类 因为相同的 id 不允许多次进入 HTML 文档,如果你添加它然后它不起作用。

所以使用 类 并在每个元素上循环代码,就像您使用 id 添加一样。

$(document).ready(function() {
  $('.line_item_text').each(function(idex,ele){
    var text_max = $(ele).attr('maxlength');
    $(ele).next().html(text_max + ' characters remaining ');
    $(ele).keyup(function() {
        var text_length = $(ele).val().length;
        var text_remaining = text_max - text_length;
        $(ele).next().html(text_remaining + ' characters remaining ');
    });
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea maxlength="50" class="line_item_text"></textarea>
<div id="txt1"></div>
<textarea maxlength="50" class="line_item_text"></textarea>
<div id="txt2"></div>