Я занимаюсь разбором XML и сталкиваюсь с какой-то странной проблемой. Имя getElementsByTagName из элемента DOM работает, но getElementById не работает. Chrome дает эту ошибку в любом месте я называю getElementById для манифеста:getElementsByTagName работает, но 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 («a») должен быть getElementById («любое значение»), потому что это просто объяснение, что getElementById не работает и getElementsByTagName делает. Я должен буду написать свою собственную функцию getElementById, чтобы выполнить это. Я обрабатываю сложный XML-файл с DOM Parser. –
Итак, вам нужно разместить повторяющиеся идентификаторы, это проблема? – bfavaretto
Нет никаких дубликатов идентификаторов внутри XML, поэтому я хотел использовать getElementById, но я не знал, что он не является частью DOMElement, поэтому мне придется написать свой собственный. –