如何使用jquery选择相邻元素?

时间:2015-12-07 02:02:21

标签: javascript jquery html

我有两个<textarea>和两个<h4>,我还有一个函数来计算textarea中的字符数,并在<h4>中打印该数字。

现在我的问题是:角色的数量取决于<textarea>。 我希望每个计数器都取决于它自己的<textarea>。怎么样?

&#13;
&#13;
	var cmnt_length_color = ["#999", "#9b764f", "#9b764f", "#cf7721", "#cf7721", "#fe7a15", "#fe7a15", "#fe7a15", "#ea532b", "#ea532b"];

$("body").on('input', 'textarea', function() {
        el = $(this);
        var textarea_cmnt_id =  $(this).attr('id');
    	var textarea_cmnt_pure_id = textarea_cmnt_id.replace(/[^0-9]/g, '');
        if(el.val().length > 500){
            el.val( el.val().substr(0, 500) );
        } else {
            $("#char-numb-"+textarea_cmnt_pure_id+",#char-numb-edit-"+textarea_cmnt_pure_id).css({"color": cmnt_length_color[Math.floor(el.val().length/50)]});
            $("#char-numb-"+textarea_cmnt_pure_id+",#char-numb-edit-"+textarea_cmnt_pure_id).text(500-el.val().length+' remins characters');
        }
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
      <form id="form-843">
        <textarea id="textarea-843"></textarea>
        <h4 id="char-numb-843">500 remins characters</h4>
    </form>

    <form>
       <textarea id="textarea-edit-843"></textarea>
       <h4 id="char-numb-edit-843">500 remins characters</h4>
    </form>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:4)

您需要.next().text()使用<h4>

el.next('h4').text(value_you_need_here);

Simple Demo

答案 1 :(得分:1)

使用jQuery&#39; next()函数获取textarea您尝试进入后的相对元素。通过将参数传递给h4来指定您希望下一个next('h1')元素来优化您的选择。

考虑这个程序的修订版本:

&#13;
&#13;
	var cmnt_length_color = ["#999", "#9b764f", "#9b764f", "#cf7721", "#cf7721", "#fe7a15", "#fe7a15", "#fe7a15", "#ea532b", "#ea532b"];

$("body").on('input', 'textarea', function() {
        el = $(this);
        var textarea_cmnt_id =  $(this).attr('id');
    	var textarea_cmnt_pure_id = textarea_cmnt_id.replace(/[^0-9]/g, '');
        if(el.val().length > 500){
            el.val( el.val().substr(0, 500) );
        } else {
            $(this).next('h4').css({"color": cmnt_length_color[Math.floor(el.val().length/50)]});
         // ^^^^^^^^^^^^^^^^^^
            $(this).next('h4').text(500-el.val().length+' remins characters');
         // ^^^^^^^^^^^^^^^^^^
        }
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
      <form id="form-843">
        <textarea id="textarea-843"></textarea>
        <h4 id="char-numb-843">500 remins characters</h4>
    </form>

    <form>
       <textarea id="textarea-edit-843"></textarea>
       <h4 id="char-numb-edit-843">500 remins characters</h4>
    </form>
&#13;
&#13;
&#13;