Javascript 是否获取可编辑div的当前内容行?
我已经翻遍了,读到在Javascript 是否获取可编辑div的当前内容行?,javascript,html,contenteditable,Javascript,Html,Contenteditable,我已经翻遍了,读到在divcontenteditable中找不到当前行的方法,所以我试图编写一个脚本来最好地估计当前行 var curLine = 1; var curColumn = 1; $(".editable").onkeydown = function(e) { var keyCode = e.keyCode || e.which; switch( keyCode ) { case 13: console.log("Enter
divcontenteditable
中找不到当前行的方法,所以我试图编写一个脚本来最好地估计当前行
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;
}
};
如你们所见,我有几个问题。此位:
如果(/*当前行的文本长度为0*/)
我似乎无法针对当前行并查看其字符串长度是否为0。另外,我的do…虽然
语句不起作用,但好像我在第一行反复按backspace,它会变成负数(当它应该保持在1[>0
])。任何帮助都将不胜感激。这是我在Chrome上的作品。现在将在其他浏览器中测试:
$(".editable").on("keyup", function(keyCode){
var linesCount = $(".editable div").length + 1;
$("#linesCount").html(linesCount + " lines.");
return linesCount;
});
对于每一行,内容可编辑div将创建一个新的div子级。如果计算这些div,就得到了行的总数
编辑:对于FF,这实际上会生成
标记。你可以数一数
FF:谢谢!但我意识到的一件事是,如果用户说有5行,然后点击第3行,在用户开始输入之前,没有办法知道。但我想这才是最重要的。再次感谢!干净简洁。我喜欢它。不幸的是,如果粘贴来自另一个源的文本,FF方法将不起作用。要在多个浏览器上尝试Chrome版本,看看它现在是如何工作的……有没有理由不计算
\n
。@TimBiden,是的,这只在键控上工作,而不回答如何获取当前行号