在 Javascript 中,我想确定一个元素(比如 A
元素)是否存在于给定范围/文本范围内。目的是确定用户的当前选择是否包含链接。我正在构建富文本编辑器控件。
范围对象有一个 commonAncestorContainer (W3C) 或 parentElement() (Microsoft) 方法,它返回范围内所有元素最接近的公共(public)祖先。但是,在该元素内部查找 A
元素是行不通的,因为这个共同祖先可能还包含不在该范围内的元素,因为该范围可以通过父元素开始或结束。
您将如何实现这一目标?
最佳答案
selection.containsNode 怎么样? https://developer.mozilla.org/en/DOM/Selection/containsNode
类似于:
var selection = window.getSelection();
var range = selection.getRangeAt(0);
var result = $('a', range.commonAncestorContainer).filter(function() {
return selection.containsNode(this);
});
console.log(result);
关于javascript - 如何知道选择中是否有链接元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6052870/