【问题标题】:How calculate text position of one element inside another?如何计算一个元素在另一个元素中的文本位置?
【发布时间】:2016-04-02 15:31:46
【问题描述】:

我尝试计算 Dom 中一个 HTML 元素在另一个 HTML 元素中的文本位置(没有 HTML 实体)。例如:

<body>


  <div class="texOne">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
    <div>

    <div class="texTwo">
    Excepteur <mark id="example">sint</mark> occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  <div>

  <script>
  var offsets=$("div.textTwo").calculateOffsetsOf("#example");

  //Result
  offset.start=10
  offset.end=14
  </script>

</body>

我如何才能找到具有最佳性能的这些偏移量?

【问题讨论】:

    标签: javascript jquery html offset


    【解决方案1】:

    在您的编码职业生涯中不要太担心表现——专注于有意义的事情。

    您可以使用jQuery的.html()方法获取父级的内部html:

    var parentHtml = $("div.texTwo").html()
    // -> Excepteur  <mark id="example">sint</mark>  occaecat cupidatat non proident...
    

    对孩子的外部 html 做同样的事情:

    var childHtml = $("#example").outerHTML()
    // -> <mark id="example">sint</mark>
    

    你应该能够计算出起点。结束点将只是开始点+子文本的长度。

    【讨论】:

    • 这不是解决方案。它获取更改原始文本位置的 html 实体。无论如何,谢谢。
    • 不确定你的意思。您可以轻松地构建一种方法来按照您的要求提供开始和结束。你有什么不明白的地方吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多