必须用 JavaScript 实现表格行点击后对应文本域聚焦并选中内容,因 CSS 的 :focus/:hover 无法持久记录状态且 默认不可聚焦;推荐 data-target 绑定、结构定位或 querySelector 精准获取目标 textarea,再调用 focus() 和 select() 或 setSelectionRange() 实现全选,注意移动端兼容性及 DOM 渲染时机。

点击表格行后,无法靠 CSS 自己“记住”哪一行被点过,必须用 JavaScript 把高亮状态同步到对应 或 上——不是变色,是聚焦 + 选中内容。
为什么不能只靠 CSS 的 :focus 或 :hover
关键不是“找所有 单纯 生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力:
- 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面;
- 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”;
- 提及位于 `apps/console/src/featur iOS Safari 和部分安卓浏览器对非表单元素的 最易被忽略的一点:如果表格用了虚拟滚动或懒加载,:hover 只响应鼠标悬停,:focus 需要元素本身可聚焦( 默认不可聚焦)。表格行点击后想让某个文本域获得焦点并高亮其内容,本质是「触发行为」而非「样式映射」。常见错误是试图用 class 切换去控制 的背景色,但用户真正需要的是光标跳过去、文字被选中、键盘可直接输入。如何用 click 事件精准定位目标文本域
”,而是建立行与文本域的绑定关系。推荐以下三种方式,按健壮性排序:
data-target 属性显式关联: 对应 ... ,点击时 document.getElementById(tr.dataset.target).focus()
,则 tr.querySelector('textarea').focus() 即可,但需确保该 确实存在且唯一):表格动态增删、分页或隐藏列时极易错位聚焦后怎么让文本自动高亮(全选)
.focus() 不会选中文本;要模拟用户双击效果,得调用 .select() 或更精确的 .setSelectionRange():
textarea.select():最简方案,全选全部内容,适合短文本或备注类字段textarea.setSelectionRange(0, textarea.value.length):等效于 .select(),但更可控,兼容性更好indexOf() 找位置,再传入 setSelectionRange(start, end)
setSelectionRange 在 textarea 尚未渲染完成时会失败,建议加 setTimeout(() => { ... }, 0) 或监听 focus 事件后再执行移动端点击无反馈?加 tabindex 并处理 focus 样式
focus 支持弱, 点击后 可能不弹出软键盘。解决办法:
加 tabindex="0",确保它可被程序聚焦textarea:focus { outline: 2px solid #409eff; },别依赖默认 outline(某些系统会关掉)click 里同时做 focus() 和 scrollIntoView():iOS 下 scroll 可能打断软键盘唤起,分开处理更稳tr 点击时目标 可能还没渲染进 DOM。这时 querySelector 或 getElementById 会返回 null,必须加存在性判断,而不是静默失败。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










