如何计算另一个元素的文本位置?

时间:2016-04-02 15:31:46

标签: javascript jquery html offset

我尝试在Dom中计算一个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>

如何以最佳表现找到这些补偿?

1 个答案:

答案 0 :(得分:0)

在你的编码生涯中不要过分担心表现 - 专注于有意义的事情。

您可以使用jQuery&#39; .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>

你应该能够计算出发点。结尾点只是孩子文本的起点+长度。