如何获取父元素中的元素的文本索引

How to get the text index of an element within a parent

本文关键字:元素 文本 索引 何获取 获取      更新时间:2023-09-26

假设我有以下html:

<div>
     <p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.</p>
     <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus sagittis lacus vel augue laoreet rutrum <i>faucibus</i> dolor auctor.</p>
</div>

见埋藏的<i> ?我想得到它的文本偏移相对于父<div>,包括所有的<p>标签和空白,但不包括父<div>。在本例中,文本偏移量为225左右。

这是可行的与javascript?

编辑:好的,一点背景。我有完整的html保存为数据库中的字符串,所以我知道确切的内容。我还可以访问实际的<i> dom元素。现在我需要将dom元素与其文本偏移量匹配

性能方面

我推荐纯方式。JSPerf:自己看


纯Javascript

var div = document.getElementsByTagName('div')[0];
/* The index */
alert(div.innerHTML.lastIndexOf('<i>'));
/*The remaining HTML of the div*/
alert(div.innerHTML.substring(div.innerHTML.lastIndexOf('<i>'),div.innerHTML.length));

document.getElemendById('myFirstItalicText');

jQuery

alert($('div').html().indexOf('<i>'));

idclass添加到<i>元素中,以便轻松找到它们。

$('#myFirstItalicText').css('background-color','red');

根据您的要求,我认为答案是

浏览器提供元素的HTML只是为了方便,而不是作为DOM API的替代品。可靠地检索和操作元素的唯一方法是通过DOM。

你应该只把HTML看作是DOM中元素的元数据