簡體   English   中英

getElementsByTagName在IE9中不起作用

[英]getElementsByTagName not working in IE9

我想用粗體替換我的跨度內容以向用戶突出顯示,所以我使用getElementsByTagName獲取了標簽並替換為新的粗體文本,它在chrome中工作正常,但在IE9中卻不能

var span = document.getElementById("testId").getElementsByTagName("a")[0].getElementsByTagName("span")[0].innerHTML;
var newBoldSpan = "<b>" + span + "</b>";
document.getElementById("testId").getElementsByTagName("a")[0].innerHTML = newBoldSpan;

但是在IE 9上,getElementById不返回任何標簽,因此在使用getElementsByTagName(“ a”)時變得未定義,有人可以幫我嗎?

如果您有任何無效的標記(例如,標記中包含的其他標記),則可以發現Internet Explorer中的getElementsByTagName失敗。

您可能還需要查看語法,以確保語法正確。 您還可以包括相關的html嗎?

編輯:所以,我看到的是您的ID錯誤,但這對於IE和Chrome都是無效的,因此它可能不是您在實際代碼中運行的ID。

它可以幫助您分解代碼:

 var li = document.getElementById("product_11998"); console.log('li', li); var a = li.getElementsByTagName("a")[0]; console.log('a', a); var span = a.getElementsByTagName("span")[0].innerHTML; console.log('span', span); var newBoldSpan = "<b>" + span + "</b>"; document.getElementById("product_11998").getElementsByTagName("a")[0].innerHTML = newBoldSpan; 

還要檢查代碼在哪里運行。 出於某種原因,它可能在DOM呈現之前在IE中執行?

我已經解決了我的問題,首先使用li.getElementsByTagName而不是document.getElementById,然后對其進行迭代以找到我想要的元素,並通過添加粗體標簽突出顯示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM