在JavaScript中连续按enter键时编辑器是否显示正确的行号?

在JavaScript中连续按enter键时编辑器是否显示正确的行号?,javascript,html,editor,keyevent,Javascript,Html,Editor,Keyevent,我正在尝试使用JavaScript构建编辑器。我想在按enter键时显示行数,如1,2,3。当按下enter键时,我确实计算了换行次数,但问题出现了,我连续按下enter键,然后换行顺序如1、2、12,因为键控事件在当时不起作用,因为连续按下 我在html中使用textarea <div class="editor-flex"> <div id="editor-numbering"> <div>1</div

我正在尝试使用JavaScript构建编辑器。我想在按enter键时显示行数,如1,2,3。当按下enter键时,我确实计算了换行次数,但问题出现了,我连续按下enter键,然后换行顺序如1、2、12,因为键控事件在当时不起作用,因为连续按下

我在html中使用textarea

    <div class="editor-flex">
        <div id="editor-numbering">
            <div>1</div>
        </div>
        <div class="editor-block">
            <textarea name="text" id="editor"></textarea>
        </div>
        <div class="output">
            Preview
        </div>
    </div>

预期的结果是连续的行数,就像其他任何类型的编辑器一样,显示结果1、2、3,当连续按enter键或single键更改行数时,我不知道连续按enter键是什么意思?也许,您可以使用
keydown
事件而不是
keydup

let editor=document.getElementById(“编辑器”)
让EditorNumber=document.querySelector(“#编辑器编号”)
设len=1;
editor.addEventListener('keydown',(事件)=>{
//console.log(editor.value)
让lenNew=editor.value.split('\n')。长度//计数行更改
//console.log(len)
如果(len!=lenNew)
{    
设div=document.createElement('div')
div.textContent=len+1
//控制台日志(div)
EditorNumber.append(div)
}
len=lenNew
//console.log(len)
})

请添加您的HTML。
let editor =  document.getElementById("editor")
let editorNumbering = document.querySelector('#editor-numbering')
let len =1;

editor.addEventListener('keyup', (event) => {
    // console.log(editor.value)
    let lenNew =  editor.value.split('\n').length //count line change
    console.log(len)
    if(len!=lenNew)
    {    
        let  div = document.createElement('div')
        div.textContent = len+1
        console.log(div)
        editorNumbering.append(div)
    }
    len = lenNew
    console.log(len)

})