支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
111
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
2222
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
2222
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
2222
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
2222
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
2222
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
333
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
332热热2
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分3
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
支持高亮选区的重合
重合的高亮选区带来的一个问题就是高亮包裹元素的嵌套,从而使得 DOM 结构会有较复杂的变动,增加了其他功能(交互)实现与问题排查的复杂度。因此,我在 3.2. 节提到的包裹高亮元素时,会再进行一些稍复杂的处理(尤其是重合选区),以保证尽量复用已有的包裹元素,避免元素的嵌套。 在处理时,将需要包裹的各个文本片段(Text Node)分为三类情况:
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。
完全未被包裹,则直接包裹该部分。
属于被包裹过的文本节点的一部分,则使用.splitText()将其拆分。 是一段完全被包裹的文本段,不需要对节点进行处理。