我需要选择标题是在div
通过h2
包裹着,所以我做这样的事情this.getElementsByTagName('h2')
哪里,这是当前的div中是H2 - 返回当前h2
元素,但是当我试图让innerHTML
或innerText
它返回null 。我究竟做错了什么?如何通过元素中的标签名称选择文本?
2
A
回答
3
它返回当前的h2元素,但是当我试图获取innerHTML或innerText时,它返回null。我究竟做错了什么?
getElementsByTagName
返回一个NodeList
,而不是一个元素。名单没有innerHTML
,但它的每一个元素确实,例如:
var list = this.getElementsByTagName('h2');
if (list[0]) {
title = list[0].innerHTML;
}
或者如果你肯定,它会存在:
title = this.getElementsByTagName('h2')[0].innerHTML;
...但如果没有发现h2,将会抛出异常。
1
否,this.getElementsByTagName('h2')
返回元件与标签名h2
阵列。
你必须遍历数组并访问要正确的元素。
1
两件事情:
你应该捕捉真实的
getElementsByTagName()
返回的节点列表的第一个元素:var h2 = this.getElementsByTagName('h2')[0];
不同的浏览器使用不同的属性来检索标签内容:
var title = h2.textContent || h2.innerText || null;
0
是的,你做了一个小错误。因为,this.getElementByTagName('h2')
将返回(标签)的列表。
既然是你的标签是第一要素为[0]
可以使用
var v= this.getElementsByTagName('h2');
var yourdata=v[0].innerHTML;
0
至于其他的答案说明的getElementsByTagName返回一个数组。
另一种选择是使用querySelector(仅现代浏览器的支持,以便检查您需要支持第一什么的)
此页上运行querySelector给出如下: -
window.document.querySelector('h1').innerHTML //#>
"<a href="https://stackoverflow.com/questions/16516643/how-to-select-text-by-tag-name-in-element" class="question-hyperlink">How to select text by tag name in element?</a>"
相关问题
- 1. 通过与特定文本标记名称选择元素 - 硒
- 2. 如何通过标签名称在Watin中查找元素?
- 3. 通过JavaScript中的标签名称获取多个元素?
- 4. 如何选择元素im:名称
- 5. 通过类名和文本查找元素的选择器
- 6. 通过忽略div标签的内部元素来选择文本javascript
- 7. 通过标签名称Drone.io筛选
- 8. 通过标记名称删除元素
- 9. 如何通过显示的文本选择元素c#selenium
- 10. 如何在VBA中使用MSXML通过标签名称提取单个HTML元素的文本?
- 11. 通过其第一个子元素的名称选择HTML元素
- 12. 如何通过标签名称删除画布上的wpf元素?
- 13. 如何使用jquery通过指定的标签名称获取父元素?
- 14. 通过名称选择硒元素与parantheses?
- 15. 如何通过元素id在CSS中隐藏元素标签?
- 16. 选择元素通过脚本
- 17. 在jquery中按名称选择元素
- 18. 通过inkskape选择SVG元素:标签属性
- 19. 通过它的文本值选择从下拉选项元素
- 20. 通过属性名称(选择标签)设置选定的选项
- 21. 文档 - 如何通过名称获取标签的值?
- 22. 如何通过名称选择元素并使用JQuery检查值?
- 23. 通过元素进行过滤并仅选择带有文本的元素
- 24. 如何通过标签页的名称关闭标签页上的标签页
- 25. 如何在CasperJS中选择带有名称空间的标签?
- 26. 如何在StarUML中显示选择元素的名称?
- 27. 如何根据函数中的名称选择列表元素?
- 28. 如何通过XPath检索CDATA标记中的元素文本?
- 29. 在XPath中通过属性名称选择多个元素的更好方法
- 30. 通过JQuery获取父元素的data-attribute中的目标元素名称
所以我认为最好使用'jQuery(this).find('h2')。文字()',因为它已经包括在内...... – Kin 2013-05-13 07:30:15
@Kirix:呃,是的。你没有说你正在使用jQuery。 :-) – 2013-05-13 07:36:20
是的,但我试图达到最佳性能,所以我可以使用疼痛js。 – Kin 2013-05-13 10:55:22