Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否获取可编辑div的当前内容行?_Javascript_Html_Contenteditable - Fatal编程技术网

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,是的,这只在
键控上工作,而不回答如何获取当前行号