Javascript js范围/选择对象-如何选择选定行中的整个文本?

Javascript js范围/选择对象-如何选择选定行中的整个文本?,javascript,jquery,html,internet-explorer,contenteditable,Javascript,Jquery,Html,Internet Explorer,Contenteditable,我使用的是contentEditable div,当光标位于第一行末尾时,单击按钮,我想选择第一行的整行。(如果光标位于第二行的末尾,则单击按钮将选择第二行的整行,依此类推) 如何使用“选择/范围对象”实现此目标 我在这里制作了一个简单的测试应用程序: 我对下面代码的问题是,当文档中只存在简单文本时,它就工作了。然而,当任何节点出现时(例如此节点),选择就会莫名其妙地混淆,而不是选择整行 注意:我使用的是IE11(或10、9、8),这就是为什么selection.modify被注释掉的原因,因为

我使用的是contentEditable div,当光标位于第一行末尾时,单击按钮,我想选择第一行的整行。(如果光标位于第二行的末尾,则单击按钮将选择第二行的整行,依此类推)

如何使用“选择/范围对象”实现此目标

我在这里制作了一个简单的测试应用程序:

我对下面代码的问题是,当文档中只存在简单文本时,它就工作了。然而,当任何节点出现时(例如此节点),选择就会莫名其妙地混淆,而不是选择整行

注意:我使用的是IE11(或10、9、8),这就是为什么selection.modify被注释掉的原因,因为IE不像Chrome那样支持这种方法

html

<div contentEditable='true'>
<span><b>this</b> is a pen</span><br />
<span>second line</span><br />
</div>
    var selection = window.getSelection();
    var range = [];
    range = selection.getRangeAt(0);
    console.log(selection);
    console.log(range);

    var startNode = selection.anchorNode;
    var endNode = selection.focusNode;
    console.log(startNode);
    console.log(endNode);
    range.setStart(startNode, 0);
    range.setEnd(endNode, range.endOffset);
    selection.addRange(range);
    //selection.modify("extend", "forward", "word");