相关疑难解决方法(0)

如何使用javascript获取位于范围内的节点?

我正在尝试获取范围对象中的所有DOM节点,这样做的最佳方法是什么?

var selection = window.getSelection(); //what the user has selected
var range = selection.getRangeAt(0); //the first range of the selection
var startNode = range.startContainer;
var endNode = range.endContainer;
var allNodes = /*insert magic*/;
Run Code Online (Sandbox Code Playgroud)

我一直在考虑过去几个小时的方法,并想出了这个:

var getNextNode = function(node, skipChildren){
    //if there are child nodes and we didn't come from a child node
    if (node.firstChild && !skipChildren) {
        return node.firstChild;
    }
    if (!node.parentNode){
        return null;
    }
    return node.nextSibling 
        || getNextNode(node.parentNode, true);
};

var getNodesInRange = function(range){
    var startNode = range.startContainer.childNodes[range.startOffset]
            || …
Run Code Online (Sandbox Code Playgroud)

javascript dom traversal range

16
推荐指数
2
解决办法
2万
查看次数

如何使用html标记从window.getSelection().getRangeAt(0)中包装文本选择?

如何从window.getSelection().getRangeAt(0)中选择并用HTML标记(例如'span'或'mark')将其包围?我更喜欢直接的javascript或jQuery解决方案.

我能够使用警报输出所选文本,但还没有弄清楚如何用额外的标记来包围它.我已经看到很多关于选择运行execCommand的例子,但这不是我想要的.

请参阅jsfiddle的工作示例

有任何想法吗?谢谢

javascript jquery dom

7
推荐指数
1
解决办法
8584
查看次数

标签 统计

dom ×2

javascript ×2

jquery ×1

range ×1

traversal ×1