javascript - React,如何以编程方式在组件单击时选择文本

标签 javascript html reactjs

我想在点击时选择一个简单的 span 元素的内容

<span 
  onClick={() => // How do I programmatically highlight the `Click Me!` text?}
>Click Me!</span>

有什么办法吗?

编辑:很抱歉,问题似乎不够清楚,我不仅想突出显示跨度,而且我实际上想触发元素的 dom 选择,因此之后可以复制和/或写在上面(例如,如果它在一个打开了可编辑内容的 div 中)。

最佳答案

非常感谢您的回答,但似乎问题没有完全清楚,对此我深表歉意。

无论如何,我在这里找到了答案:

Programmatically select text in a contenteditable HTML element?

我真的很想以编程方式选择内容,所以我使用的最后一段代码如下:

function selectContents(el: any) {
  let range = document.createRange();
  range.selectNodeContents(el);
  let sel = window.getSelection()!;
  sel.removeAllRanges();
  sel.addRange(range);
}

<span onClick={(e) => selectContents(e.target)}>
  {node.name}
</span>

它在 electro 中运行良好,但与旧版浏览器可能存在一些兼容性问题。

干杯。

关于javascript - React,如何以编程方式在组件单击时选择文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57962986/

相关文章:

javascript - 如何使 css 响应式 topnav 滑入和滑出

javascript - 在滚动条上加载更多数据

javascript - 单独处理同一实例的多个异常

javascript - 列表标签的 Value 属性在 IE 中 chop 2147483647 以上的任何内容

javascript - 用 jasmine 测试嵌套对象

jquery - 如何将最小高度和最小宽度添加到 jQuery .width 和 .height

reactjs - React Material 表列可调整大小

javascript - 了解 React Native 程序流程 - 循环

javascript - 正则表达式用标签包围空白并替换它

javascript - MySQL 查询总是失败。页面没有重定向