我正在做XML解析,遇到一个奇怪的问题。 DOM元素中的getElementsByTagName有效,但getElementById不起作用。 Chrome会在我为清单调用getElementById的任何地方给出此错误:

Object #<Element> has no method 'getElementById'


但是以某种方式getElementByTagName可以正常工作。

var manifest = content.getElementsByTagName("manifest")[0];
var spine = content.getElementsByTagName("spine")[0];
var itemref = spine.getElementsByTagName("itemref")[0].getAttribute("idref");
alert(itemref);//works
var firstpage = manifest.getElementById(itemref).getAttribite("href");


谁能向我解释为什么getElementById DOM对我不起作用?

test = manifest.getElementById("any value");//Problem
test = manifest.getElementsByTagName("any value");//no Problem

最佳答案

您不能将getElementById作为任意元素的方法来调用,它仅在document元素上可用。这是有道理的,因为HTML文档上不应有任何重复的ID。

话虽如此,您的呼叫getElementById("a")看起来很奇怪;您是否真的有id="a"元素,或者您想获取对任意锚点的引用?

10-05 20:37
查看更多