如何获取父元素中的元素的文本索引
How to get the text index of an element within a parent
假设我有以下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>'));
另
将id
或class
添加到<i>
元素中,以便轻松找到它们。
$('#myFirstItalicText').css('background-color','red');
根据您的要求,我认为答案是不。
浏览器提供元素的HTML只是为了方便,而不是作为DOM API的替代品。可靠地检索和操作元素的唯一方法是通过DOM。
你应该只把HTML看作是DOM中元素的元数据
相关文章:
- 识别切换条元素文本并在量角器中单击它
- 数组函数不适用于从元素文本创建的JavaScript数组
- 将元素文本替换为子项中的值
- 如何在不丢失格式的情况下连续淡入() 元素文本的每个字符,包括嵌套元素
- 使用 jQuery 从目标页面而不是当前页面获取元素文本
- 使用jquery为html元素文本的每个字符设置动画
- regex替换元素文本
- 在 Firefox 中单击鼠标时无法选择所有输入元素文本
- 如何确定 HTML 元素文本中“新行”的位置
- 在量角器中将元素文本转换为对象
- 无法使用 jquery 获取 xml 元素文本值
- jQuery - 仅获取父元素文本,而不获取子元素文本
- 单击其他元素(文本输入)时显示下拉列表
- 使用自定义绑定更新元素文本
- Android驱动程序的scrollTo和scrollToExact 方法的问题.方法不会滚动到所需的元素文本,而是滚动
- 选择元素文本并添加逗号
- 获取不带 html 标记的页面元素文本,但保留换行符
- 删除元素文本中的最后一个字符
- 如何按顺序获取所有元素文本
- 使用AngularJS将元素文本复制到title属性的干净方法