1

同じ古い話: 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) {

                }

            });
4

0 に答える 0