Javascript 如何在jQuery中选择元素之后的第一个特定类

Javascript 如何在jQuery中选择元素之后的第一个特定类,javascript,jquery,Javascript,Jquery,我需要计算textarea中内容的字符数,并在下面的特定类中显示它 我正在使用下面的代码,但它对我不起作用: <script type="text/javascript" charset="utf-8"> $(document).ready(function(){ $(".messageText").each(function(){ $(this).next(".messageCharacters").text($(this).val(

我需要计算textarea中内容的字符数,并在下面的特定类中显示它

我正在使用下面的代码,但它对我不起作用:

<script type="text/javascript" charset="utf-8">
    $(document).ready(function(){
        $(".messageText").each(function(){
            $(this).next(".messageCharacters").text($(this).val().length);
            $(this).next(".messagePages").text(($(this).val().length / 70).toFixed());
        });
        $(".messageText").keyup(function(){
            $(this).next(".messageCharacters").text($(this).val().length);
            $(this).next(".messagePages").text(($(this).val().length / 70).toFixed());
        });
    });
</script>

<p>
    <textarea name="title1" class="messageText">phrase1</textarea>
    <br /><span class="messageCharacters">0</span> characters - <span class="messagePages">0</span> pages
</p>
<p>
    <textarea name="title2" class="messageText">phrase2</textarea>
    <br /><span class="messageCharacters">0</span> characters - <span class="messagePages">0</span> pages
</p>
如何修复它?

您的.messageText旁边的元素是br,因此$this.next.messageCharacters永远不会返回您的元素

改用:

$(this).nextAll(".messageCharacters")
.messageText旁边的元素是br,因此$this.next.messageCharacters永远不会返回您的元素

改用:

$(this).nextAll(".messageCharacters")
将$this.next更改为$this.sides

将$this.next更改为$this.sides

首先,$.messageText.keyupfunction{位于document.ready函数之外,因此DOM解析器不会收集.messageText元素

另外,下一个元素是这样的,您需要以父容器为目标,或者执行.nextAll操作,如:

要防止在文本区域内使用鼠标右键单击粘贴文本,而脚本不执行任何操作,请使用.oninput在文本区域值侦听器内注册任何更改

另外,考虑一下$this.val.length/70.toFixed,如果最初的34个字符使其pages=2,那么在105处,您将得到pages=3。因此,请再次检查该数学

首先,$.messageText.keyupfunction{在document.ready函数之外,因此DOM解析器不会收集.messageText元素

另外,下一个元素是这样的,您需要以父容器为目标,或者执行.nextAll操作,如:

要防止在文本区域内使用鼠标右键单击粘贴文本,而脚本不执行任何操作,请使用.oninput在文本区域值侦听器内注册任何更改

另外,考虑一下$this.val.length/70.toFixed,如果最初的34个字符使其pages=2,那么在105处,您将得到pages=3。因此,请再次检查该数学


但是,还有一些其他textareas具有相同的类,使用nextAll不会有任何问题吗?取决于你所说的问题的意思,但是由于nextAll只查找兄弟姐妹,并且你的textareas具有不同的父级,这应该不会导致任何问题。但是,还有一些其他textareas具有相同的类,使用nex不会有任何问题吗高?取决于你所说的问题是什么意思,但由于nextAll只查找兄弟姐妹,而且你的textareas有不同的父项,所以不会引起任何问题。只是出于好奇…$this.val.length/70.toFixed确切的页数应该在什么时候计算?只是出于好奇…$this.val.length/70.toFixed确切的页数应该在什么时候计算?