我已经开玩笑地读到没有找到div contenteditable
当前行的方法所以我正在尝试编写一个脚本来最好地估计当前行。
var curLine = 1;
var curColumn = 1;
$(".editable").onkeydown = function(e) {
var keyCode = e.keyCode || e.which;
switch( keyCode ) {
case 13:
console.log("Enter; on line: " + curLine);
curLine++;
break;
case 8:
if( /* current line has a text length of 0 */ ) {
console.log("Previous line prepended; previous enter reversed; on line: " + curLine);
do {
curLine--;
} while( curLine > 0 );
}
// } else if( /* single digit removed */ ) {
// console.log("Bit prepended");
// }
break;
}
};
所以,正如你所看到的,我有几个问题。这一位:if( /* current line has a text length of 0 */ )
我似乎无法定位当前行并查看其字符串长度是否为0.此外,我的do...while
语句不起作用,就像我按下退格键一样第一行一遍又一遍,它进入负数(当它应该保持在1 [> 0
])。任何帮助将不胜感激。
答案 0 :(得分:0)
这适用于Chrome。现在将在其他浏览器中测试:
$(".editable").on("keyup", function(keyCode){
var linesCount = $(".editable div").length + 1;
$("#linesCount").html(linesCount + " lines.");
return linesCount;
});
对于每一行,内容可编辑div将创建一个新的div子。如果算上这些div,就会获得总行数。
http://jsfiddle.net/hescano/PypeD/
编辑:对于FF,这实际上会产生<br>
个标签。你可以数数。