我是JavaScript的新手,正在尝试编写一个简单的荧光笔工具。每个函数都可以自行运行,但是在组合时,出现次数不再正常。这是我的代码http://jsfiddle.net/mrBXu/,问题是当你第一次选择任何“The”时,事件正常,但是如果你选择它,它就不再适合了。非常感谢您的帮助!
答案 0 :(得分:0)
不幸的是,你要做的事情并不那么容易。它在第二次尝试时不起作用的原因是因为您插入了一个跨度来执行突出显示。第一次选择文本时,startContainer是一个位于“p”标记内的textNode。第二次选择时,startContainer是一个textNode,它从您插入的span的末尾开始。您需要做的是需要更多代码。您不仅需要检查startContainer,还要查找它与“p”标记的关系,并检查“p”标记内startContainer之前的所有节点。
以下是一个有效的例子:http://jsfiddle.net/mrBXu/4/