给定HTML字符串中的索引,找到最接近的(父)DOM元素

时间:2018-01-11 20:33:52

标签: javascript jquery html

我有一个字符串,只包含以下HTML:

<p id="p1">Hello there</p>
<p id="p2">Hello there</p>

第一个“Hello”的“o”位于字符串内的索引15处。

给定索引i,例如i = 15,我想找到该索引处的字符所在的HTML DOM。

在我的示例中,它位于id="p1"段中。

如何以编程方式找出索引i中的字符位于标记字符串中的哪个父DOM?

实现是这样的:我们对文章的HTML进行了一些更改,每个差异由起始索引和结束索引表示。我们如何获得更改所在文章的段落?

起初我想过使用jQuery:contains,在这里我们可以找到更改的DOM,因为我们知道它是什么。但如果更改是单个空格,搜索将找到多个结果。

1 个答案:

答案 0 :(得分:1)

从索引0到16创建一个新的div元素。在新创建的div元素中找到最后一个div。

var html = $("#content").html();
var index = 16;
var d = $("<div></div>");

d.html(html.substr(0, index));

var result = d.find("p").last();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content">
  <p id="p1">Hello there</p>
  <p id="p2">Hello there</p>
</div>