You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript获取textarea最后一行内容?

解决textarea按下按键时获取最后一行内容的问题

当然可行,你可以通过以下方式实现:

首先纠正你代码里的一个小问题:event.code 的值是字符串类型,判断回车应该用 event.code === 'Enter'(或者用 event.key === 'Enter'),不是数字13。

接下来,获取最后一行的核心思路是:

  • 用 textarea.value 获取输入框的全部内容(这才是正确获取用户输入的方式,innerHTML 是用来读取元素的HTML结构,不适合拿用户输入)
  • 将内容按换行符分割成数组,兼容Windows的\r\n和类Unix的\n
  • 取数组的最后一项就是最后一行

回车触发时获取最后一行(keydown版)

const textarea = document.getElementById('textarea');

textarea.addEventListener("keydown", (event) => {
  if (event.code !== 'Enter') {
    return;
  }
  // 阻止默认回车换行行为(不需要的话可删除)
  event.preventDefault();
  
  // 分割内容为行数组
  const lines = textarea.value.split(/\r?\n/);
  // 获取最后一行
  const lastLine = lines[lines.length - 1];
  
  console.log('最后一行内容:', lastLine);
});

回车触发时获取最后一行(keyup版,内容更新后触发)

如果需要在回车后内容已经更新的状态下获取,改用keyup事件更合适:

const textarea = document.getElementById('textarea');

textarea.addEventListener("keyup", (event) => {
  if (event.code !== 'Enter') {
    return;
  }
  
  const lines = textarea.value.split(/\r?\n/);
  const lastLine = lines[lines.length - 1];
  console.log('最后一行内容:', lastLine);
});

任意按键触发时获取最后一行

如果要在用户输入任意按键时都获取最后一行,去掉回车判断即可:

const textarea = document.getElementById('textarea');

textarea.addEventListener("keydown", () => {
  const lines = textarea.value.split(/\r?\n/);
  const lastLine = lines[lines.length - 1];
  console.log('当前最后一行:', lastLine);
});

内容的提问来源于stack exchange,提问作者Potter Edgerton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 17:10:24