getTelementById用于XML文档,Mozilla扩展 [英] getElementById for XML Documents, Mozilla extensions
问题描述
在使用Mozilla的DOMParser方法从XML字符串中解析的DOM上是否支持document.getElementById方法?
我做了一个mozilla扩展,它读取一个xmlfile并使用DOM解析器将xml转换为一个DOM元素,并尝试通过Id获取元素。 getElementsByTagName方法工作,但不getElementById。它总是返回null。
function(xmlString){
var parser = new DOMParser();
var doc = parser.parseFromString(xmlString,text / xml);
var aNodes = doc.getElementsByTagName(nodeTag);
for(var i = 0; i< aNodes.length; ++ i){
var id = aNodes [i] .getAttribute('id');
var resultNode = doc.getElementById(id);
alert(id);
alert(resultNode);
}
}
我试过上面的代码。 alert(id)返回正确的id,alert(resultNode)每次返回null。
不, document.getElementById
通常不适用于任何XML文档。
在最近的浏览器(例如Firefox 3.5及更高版本)中,您可以使用
document.querySelector
来代替: var resultNode = doc.querySelector [id =+ id +]);
Is document.getElementById method supported on DOM parsed from XML strings using the DOMParser method in Mozilla ? I am making a mozilla extension that reads an xmlfile and uses DOM Parser to convert the xml into a DOM element, and tries getting elements by Id. The method getElementsByTagName works but not getElementById. It always returns null.
function (xmlString) {
var parser = new DOMParser();
var doc = parser.parseFromString(xmlString, "text/xml");
var aNodes = doc.getElementsByTagName("nodeTag");
for(var i=0; i<aNodes.length; ++i) {
var id = aNodes[i].getAttribute('id');
var resultNode = doc.getElementById(id);
alert(id);
alert(resultNode);
}
}
I tried the above code. alert(id) returns the proper id, where as alert(resultNode) returns null everytime.
No, document.getElementById
doesn't generally work on arbitrary XML documents.
In recent browsers (e.g. Firefox 3.5 and later), you can use document.querySelector
instead:
var resultNode = doc.querySelector("[id=" + id + "]");
这篇关于getTelementById用于XML文档,Mozilla扩展的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!