同样的老故事:某些东西在 Firefox / Chrome 中有效,但在 IE 中无效。
var reason = '';
if (data.documentElement.getElementsByTagName("DNFReason")[0].childNodes[0] !== undefined)
{ reason = data.documentElement.getElementsByTagName("DNFReason")[0].childNodes[0].nodeValue; }
这是我发现的第一个可行的解决方案,用于从 Javascript 中的 XML 文档中获取 XML 节点的值,所以我很沮丧,它显然在 IE 中不起作用。
如果节点有一个值,它工作正常,所以问题显然是由一个空/未定义的节点引起的。
有人对此有任何智慧吗?我也在寻找一种稍微不那么冗长的编码方式(可能在 jQuery 中),但我受到时间限制,没有时间像我需要的那样进行研究。
添加了完整的ajax请求:
$.ajax({
type: "GET",
url: "SheriffWS.asmx/GetGroupByID",
data: 'GroupID=' + $("#<%=Groups.ClientID() %>").val(),
dataType: "xml",
success: function(data) {
var gtype = '';
var reason = '';
var nme = '';
var ttype = '';
var ttypeid = 0;
if (data.documentElement.getElementsByTagName("Type")[0].childNodes[0] !== undefined) {
gtype = data.documentElement.getElementsByTagName("Type")[0].childNodes[0].nodeValue;
}
if (data.documentElement.getElementsByTagName("Name")[0].childNodes[0] !== undefined) {
nme = data.documentElement.getElementsByTagName("Name")[0].childNodes[0].nodeValue;
}
if (data.documentElement.getElementsByTagName("DNFReason")[0].childNodes[0] !== undefined) {
reason = data.documentElement.getElementsByTagName("DNFReason")[0].childNodes[0].nodeValue;
}
if (data.documentElement.getElementsByTagName("TestName")[0].childNodes[0] !== undefined) {
ttype = data.documentElement.getElementsByTagName("TestName")[0].childNodes[0].nodeValue;
}
if (data.documentElement.getElementsByTagName("TestTypeID")[0].childNodes[0] !== undefined) {
ttypeid = data.documentElement.getElementsByTagName("TestTypeID")[0].childNodes[0].nodeValue;
}
$("#groupinfo-name").val(nme);
$("#hid-name").val(nme);
$("#groupinfo-type").val(gtype);
$("#groupinfo-testtype").val(ttype);
$("#groupinfo-testtypeid").val(ttypeid);
if (data.documentElement.getElementsByTagName("DNF")[0].childNodes[0].nodeValue == 'false') {
$("#groupedit-dnf").removeAttr('checked');
$("#groupedit-dnf-li").hide();
}
else {
$("#groupedit-dnf").attr('checked', 'checked');
$("#groupedit-dnf-li").show();
}
$("#<%=GroupEditDNFReason.ClientID() %>").val(reason);
$("#hid-dnfreason").val(reason);
},
error: function(msg) {
}
});