javascript - 从按键上的文本区域获取最后一行

标签 javascript jquery

我有一个 textarea 字段,在每次按键时,我想将 textarea 中的最后一行推送到一个数组。

目前,我在每次按键时构建数组以获取文本区域中的最后一行。有没有办法优化这个?意思是,无需构造数组即可获取文本区域中的最后一行。

jQuery('#mytextarea').keypress(function() {
    lines = jQuery('#mytextarea').text().split("\n");
    lastLine = lines[lines.length - 1];

});

if(.. some condition ..) {
myArray.push(lastLine);

最佳答案

的确,有一种方法可以优化它。优化主要是内存使用 - 实际 CPU 使用也得到改善。

优化版本依赖于lastIndexOf()。具体如下:

jQuery("#mytextarea").keypress(function() {
     var content = this.value;
     var lastLine = content.substr(content.lastIndexOf("\n")+1);
});

您会注意到一些微优化:

  • this 已经是 DOM 元素。仅仅为了获取文本内容而重新调用 jQuery 毫无意义。在处理器上节省一点
  • 使用 lastIndexOf 允许我在最后一个 \n
  • 之后获取任何内容

DogbertlastIndexOf 提供了基准:http://jsperf.com/splitting-large-strings

关于javascript - 从按键上的文本区域获取最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16839908/

相关文章:

jquery - 在表中插入新行

javascript - 使用 Javascript 在下拉控件中显示颜色

javascript - 使用一个输入作为两个按钮的值

javascript - TypeError : fs. readdirSync 不是函数 React js

javascript - BootstrapToggle 复选框在单击事件时调用函数

javascript - 将javascript文件插入dom(方法比较)

javascript - Emscripten OpenGL (3) 给出版本错误

php - onload 在带有数据的 $.mobile.changePage 之后和两个 .php 页面之间不起作用

javascript - 如何使用 javascript 将 tr 移动到 tbody 中?

php - 从数据库获取值并将它们设置在数组中 1tomany