我想用粗体替换我的span内容以向用户突出显示,所以我使用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(&#34; a&#34;)时未定义 任何人都可以帮我吗?
答案 0 :(得分:0)
如果您有任何无效标记(例如标记中包含的其他标记),则可以知道getElementsByTagName在Internet Explorer中失败。
您可能还需要查看语法以确保它是正确的。你能包括一个相关的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;
&#13;
并检查代码的运行位置。可能是因为某些原因在呈现DOM之前它在IE中执行了?
答案 1 :(得分:0)
我已经解决了我的问题,首先使用li.getElementsByTagName而不是document.getElementById然后迭代它以找到我想要的元素并通过添加粗体标记突出显示