如何确定与给定javascript选择对象关联的节点(与此innerHTML关联的标记)?我正在使用window.getSelection(),并想知道选择所在的div / span类。
谢谢!
答案 0 :(得分:1)
如果您想要包含整个选择的最深元素,最简单的方法是从选择中获取Range
对象并使用其commonAncestorContainer
属性。
jsFiddle:http://jsfiddle.net/5LvEG/1/
代码:
function getSelectionContainerElementId() {
var sel = window.getSelection();
if (sel.rangeCount > 0) {
var range = sel.getRangeAt(0);
var container = range.commonAncestorContainer;
// container could be a text node, so use its parent if so
if (container.nodeType == 3) {
container = container.parentNode;
}
return container.id;
}
return null;
}
alert(getSelectionContainerElementId());