我需要選擇標題是在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