我有一个文本区域字段,在每次按键时,我想将文本区域中的最后一行推送到数组中。
目前,我正在每次按键时构建数组以获取文本区域中的最后一行。有没有办法优化这个?意思是,无需构造数组即可获取文本区域中的最后一行。
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 没有什么意义。节省一点处理器资源
- using
lastIndexOf
允许我在最后一次之后得到任何东西\n
Dogbert https://stackoverflow.com/users/320615/dogbert为lastIndexOf
: http://jsperf.com/splitting-large-strings http://jsperf.com/splitting-large-strings
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)