开发者

jQuery $(XMLDoc).xml does not work with ie9

I'm trying to retrieve the original XML for a row as a string from a multi row data set. I'm using jQuery (just upgraded to 1.6.1 to see if this fixed the issue without success) and since using ie9 the result I get from the below code personsArray[pid] = $(this).xml; is 'undefined'. Is there a workaround for this at 开发者_如何学Call. Any help would be appreciated, Many Thanks.

$(XMLdata).find('PersonRow').each(function(){
    var pid = $(this).find('PersonId').text();

    myData[i] = {
        id: $(this).find('PersonId').text(), 
        name: $(this).find('Name').text(), 
        dob: $(this).find('BirthDate').text(),
        address: $(this).find('MainAddress').text(),
        telNo: $(this).find('MainTelNumber').text()
    };

    personsArray[pid] = $(this).xml;
    i++;
});


Try this...

personsArray[pid] = $(this).xml2;

(function($){         
  $.fn.xml2 = function(){  
    //alert ("TEST");
    if (window.XMLSerializer) // Internet Explorer 9 and Gecko
    {
        //alert ("MSIE 9, Gecko, XML FINDER");          
        var s="";
        if (this.length)
            (((typeof all!='undefined')&&all)?this:jQuery(this[0]).contents()).each(function(){
                s+=(new window.XMLSerializer()).serializeToString(this);
            });
        return s;
    } else {
        if (window.DOMParser) 
        {
            // Internet Explorer 8
            //alert ("MSIE 8, XML FINDER");
            var s="";
            if (this.length)
                (((typeof all!='undefined')&&all)?this:jQuery(this[0]).contents()).each(function(){
                    s+=window.ActiveXObject?this.xml:(new XMLSerializer()).serializeToString(this);
                });
            return s;
        }
        else // Internet Explorer OLD
        {           
            // Internet Explorer 8 and below
            //alert ("MSIE OLDER, XML FINDER");
            var s="";
            if (this.length)
                (((typeof all!='undefined')&&all)?this:jQuery(this[0]).contents()).each(function(){
                    s+=window.ActiveXObject?this.xml:(new XMLSerializer()).serializeToString(this);
                });
            return s;
        }
    }       
  };
})(jQuery);

Best of luck.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜