假设我有以下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-ish。
这是用javascript做的吗?
编辑:好的一点背景。我将完整的html保存为数据库中的字符串,因此我知道确切的内容。我也可以访问实际的<i>
dom元素。现在我需要将该dom元素与其文本偏移量匹配。
答案 0 :(得分:2)
我会推荐纯粹的方式。 JSPerf: See it by yourself
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');
alert($('div').html().indexOf('<i>'));
在您的id
元素中添加class
或<i>
,以便轻松找到它们。
$('#myFirstItalicText').css('background-color','red');
答案 1 :(得分:0)
我认为根据您的要求,答案是否。
浏览器仅提供元素的HTML作为方便,而不是替代DOM API。可靠地检索和操作元素的唯一方法是通过DOM。
您应该只将HTML视为DOM中元素的元数据。