【问题标题】:Determine textNode at character number of paragraph ancestor在段落祖先的字符数处确定 textNode
【发布时间】:2020-10-25 11:00:48
【问题描述】:

假设我们有以下 HTML:

<p>1234<strong>5678</strong>.</p>

假设如果我们想将“234”视为一个选择,它相对于 p 父元素的索引将是 1-3(使用 0 作为起始索引)。

如何确定段落的字符索引 7 处的节点(例如 textNode)?

显而易见的答案是属于strong 元素的textNode:假设文本是no 选择(例如,没有window.getSelection())要参考,我该怎么做?

【问题讨论】:

    标签: javascript textselection


    【解决方案1】:

    这实际上比我想象的要容易一些,但是它可能有局限性(欢迎其他人扩展)。

    var tl = 0;//text length, increment per node's textContent.length
    for (var i = 0; i < element.childNodes.length; i++)
    {
     console.log(i+' = '+ac.childNodes[i].textContent.length);
     tl = (tl + element.childNodes[i].textContent.length);
    }
    

    所以当长度突然等于或大于我们正在寻找的任何字符索引引用时,我们可以使用break

    可能存在多个嵌套节点的复杂性,例如嵌套在 strong 元素中的 em 元素需要考虑,欢迎其他人扩展。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 2018-07-10
      • 1970-01-01
      • 1970-01-01
      • 2012-11-16
      • 2021-06-23
      相关资源
      最近更新 更多