首页 > 解决方案 > 如何使用 getSelectedText() 中的文本选择进行 wrap()?

问题描述

我想围绕选定的文本扭曲 div,但我不知道如何以最简单的方式做到这一点?

我通过以下方式捕获选定的文本,

myselection = window.getSelection();

例如,我们有"123456789"并且我"456" 最后选择了我想要的,

"123<div>456</div>789"

我知道使用 wrap() 应该是可能的,但通常我每次都使用选择器作为类或 id。如何将该wrap()功能用于选择对象?

感谢您的帮助!

标签: javascriptjquery

解决方案


首先,您可以尝试这样的事情

let selectedString = window.getSelection().toString()
let selectedNode = $(window.getSelection().anchorNode).parent()
let fullText = selectedNode.get(0).innerHTML
let finalText = fullText.replace(selectedString, "<span style='background:red'>" + selectedString + "</span>")
selectedNode.get(0).innerHTML = finalText

推荐阅读