我试图为一个行计数器(文本编辑器)获取一个textarea的行数,但是如果textarea中有一个空行,就会添加两个新行。输出如下:
["// Hello World!","","","The line above was empty","","","Same here!","The line on the bottom of this one is empty!","",""]
我的代码:
function getLines() {
var textValue = document.querySelector('#editor').value;
var lines = textValue.split("\n");
console.log(lines);
}
应某人的请求,HTML如下:
<div id="visible" contenteditable="true"
onkeyup="updateLineCount()">// Hello World!</div>
<textarea id="code-editor">
基本上,我计划添加语法高亮显示,这样div就可以编辑内容,JS将div中的内容发送到textarea,只是为了计算代码行。下面是完成此操作的JS:
textarea.value = document.querySelector("#code-editor").innerText;
1条答案
按热度按时间zujrkrfu1#
您遇到的问题与提取contenteditable div的
innerText
值并将其放入<textarea>
有关。这就是额外换行符\n
的来源。除非你需要使用
<textarea>
,否则我会直接从contenteditable div中获取行数。这里唯一奇怪的是,在innerText
的最后添加了一个额外的换行符\n
,但这可以使用.split(0, -1)
删除。第一个