我正在使用rangy库,可以选择内容可编辑的文本,如下所示:
var sel = rangy.getSelection();
alert(sel);
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何获取所选文本父节点/元素.例如,如果我选择的是文本
<strong>My Text</strong>
or
<h1>My Title</h1>
Run Code Online (Sandbox Code Playgroud)
如何包含强节点或H1元素?
sel.anchorNode.parentNode
将为您提供仅包含选择的一端的节点的父节点.要获得整个选择的最内层包含元素,最简单的方法是从选择中获取一个Range并查看其commonAncestorContainer
属性(可能是文本节点,在这种情况下,您需要获取其父级):
var sel = rangy.getSelection();
if (sel.rangeCount > 0) {
var range = sel.getRangeAt(0);
var parentElement = range.commonAncestorContainer;
if (parentElement.nodeType == 3) {
parentElement = parentElement.parentNode;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4111 次 |
最近记录: |