同じ古い話: 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 ノードの値を取得するために私が見つけた最初の実行可能なソリューションでした。
ノードに値がある場合は正常に機能するため、問題は明らかに空/未定義のノードが原因です。
誰にもこれに関する知恵はありますか?また、少し冗長なコーディング方法 (おそらく 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) {
}
});