Javascript 突出显示包含不同节点的节点

Javascript 突出显示包含不同节点的节点,javascript,html,Javascript,Html,编辑:我在这篇文章中找到了一个很好的解决方案 我正在制作一个脚本来突出文本。我正在使用标签。这部分很简单,但现在我遇到了一个问题。当高亮显示包含不同的节点时,我需要在父节点关闭之前关闭标记,然后在新节点中再次打开。这不是一个很好的解释,所以我举了一个例子: <body> <p id="0">Lorem ipsum</p> <div id="1">dolor sit amet</div>

编辑:我在这篇文章中找到了一个很好的解决方案

我正在制作一个脚本来突出文本。我正在使用标签。这部分很简单,但现在我遇到了一个问题。当高亮显示包含不同的节点时,我需要在父节点关闭之前关闭标记,然后在新节点中再次打开。这不是一个很好的解释,所以我举了一个例子:

    <body>

       <p id="0">Lorem ipsum</p>

       <div id="1">dolor sit amet</div>

    </body>
在我的案例中,元素将是标记

这就是我所拥有的,仍然存在突出显示不同节点的问题

在您的示例中,您必须在代码的每个部分上启动不同的垃圾邮件:

<span>ipsum</span></p><div id="1"><span>dolor sit</span>

所以对你来说,只要在开头加上一个span,然后查找字符串的结尾,或者a'将显示你想要的任何类型的预览或示例。。。
function surroundSelection(element) {



            if (window.getSelection)
            {
                var sel = window.getSelection();
                if (sel.rangeCount)
                {
                    console.log (sel);

                    var range = sel.getRangeAt(0).cloneRange();



                    range.surroundContents(element);
                    sel.removeAllRanges();
                    sel.addRange(range);



                }
            }
        }
<span>ipsum</span></p><div id="1"><span>dolor sit</span>