javascript - 如何使用 getSelectedText() 中的文本选择进行 wrap()?
问题描述
我想围绕选定的文本扭曲 div,但我不知道如何以最简单的方式做到这一点?
我通过以下方式捕获选定的文本,
myselection = window.getSelection();
例如,我们有"123456789"
并且我"456"
最后选择了我想要的,
"123<div>456</div>789"
我知道使用 wrap() 应该是可能的,但通常我每次都使用选择器作为类或 id。如何将该wrap()
功能用于选择对象?
感谢您的帮助!
解决方案
首先,您可以尝试这样的事情
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