我有两个<textarea>
和两个<h4>
,我还有一个函数来计算textarea中的字符数,并在<h4>
中打印该数字。
现在我的问题是:角色的数量取决于<textarea>
。
我希望每个计数器都取决于它自己的<textarea>
。怎么样?
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;
答案 0 :(得分:4)
答案 1 :(得分:1)
使用jQuery&#39; next()
函数获取textarea
您尝试进入后的相对元素。通过将参数传递给h4
来指定您希望下一个next('h1')
元素来优化您的选择。
考虑这个程序的修订版本:
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;