Ste*_*nst 5 jquery internet-explorer-8 internet-explorer-7
我正在尝试使用此方法使用jquery访问附加到HTML文档末尾的XML内容(生成的东西):
$("SELECTION_STATE").find("CHARACTERISTIC").each( function() {
if($(this).attr("name") == "Z_MDST" ) {
alert($(this).find("MEMBER").attr("name"));
}
});
Run Code Online (Sandbox Code Playgroud)
这在Firefox和Chrome中运行良好但在IE中没有,它不会发出任何警报.
这是我试图遍历的xml
<SELECTION_STATE>
<SELECTION type="CARTESIAN_PRODUCT">
<CHARACTERISTICS>
<CHARACTERISTIC name="Z_MDST">
<SELECTIONS>
<SELECTION type="SINGLE_MEMBER">
<MEMBER name="00002213" type="MEMBER" text="2213"/>
</SELECTION>
</SELECTIONS>
</CHARACTERISTIC>
Run Code Online (Sandbox Code Playgroud)
有什么办法可以用jquery 1.5来实现吗?
提前致谢
因为您在HTML文档中.IE将无法识别XML.
console.log($("SELECTION_STATE").get());
Run Code Online (Sandbox Code Playgroud)
在IE中返回对象HTMLUnknownElement
为了使用XML,您必须通过IE XML解析器运行它.就像是.
var x = new ActiveXObject("Microsoft.XMLDOM");
x.loadXML(yourXML)
Run Code Online (Sandbox Code Playgroud)
你显然只想这样做($.browser.msie)
附带问题:您是否使用AJAX加载XML?
更新:完整示例
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
var myXML = document.body.innerHTML; // or wherever you are storing the XML in the DOM
xmlDoc.loadXML(myXML)
if (xmlDoc.parseError.errorCode != 0) {
var myErr = xmlDoc.parseError;
console.log("You have error " + myErr.reason);
} else {
console.log(xmlDoc.xml);
}
$("SELECTION_STATE", xmlDoc).find("CHARACTERISTIC").each( function() {
if($(this).attr("name") == "Z_MDST" ) {
alert($(this).find("MEMBER").attr("name"));
}
});
Run Code Online (Sandbox Code Playgroud)
由于您已经在使用jQuery,因此请使用parseXML函数(http://api.jquery.com/jQuery.parseXML/在1.5版中添加)
var xmlDoc = $.parseXML(data);
$(xmlDoc).find("CHARACTERISTIC").each( function() {
if($(this).attr("name") == "Z_MDST" ) {
alert($(this).find("MEMBER").attr("name"));
}
});
Run Code Online (Sandbox Code Playgroud)