我有div
contenteditable
属性,使div
的行为与textarea相似。
<div class="caption" contenteditable>
</div>
<p id="characters-count">0 characters</p>
现在,我想使用JQuery .length
属性
$('.caption').keyup(function(){
var char_count = $(this).text().length;
$('#characters-count').html(char_count + " characters");
});
当我输入一个字符时,它返回'11',但是当没有字符时,它在Firefox中返回'10'。在Chrome中,它是相同的,但在我第二次按下键盘后它最终正确。
看看这个jsFiddle
更新:我使用的是Firefox 29和Chrome 34
答案 0 :(得分:4)
就像textareas一样,你的div需要在开始和结束标记之间没有新的行或空格。
这个:
<div class="caption" contenteditable>
</div>
需要这样:
<div class="caption" contenteditable></div>
答案 1 :(得分:2)
答案 2 :(得分:1)
$('.caption').keyup(function(){
var char_count = $.trim($(this).text()).length;
$('#characters-count').html(char_count + " characters");
});
这样做
答案 3 :(得分:0)
你的div不是空的(10个字符),因为你留下了空格(和空格数)
<div class="caption" contenteditable></div>
<p id="characters-count">0 characters</p>**
看到这个JSFiddle:
答案 4 :(得分:-3)
计算空间
var char_count = $(this).text().trim().length;