[jQuery] IE XML parsing problem

[jQuery] IE XML parsing problem


Hi,
I've managed to finish my first plugin and re-learn javascript at the same
time. So I'm not quite sure if this is a Javascript or jQuery issue.
The plugin loads external content from HTML or XML data using an AJAX call
to the file name generated from the LI element clicked.
DEMO: http://www.sozzi.cn/jquery/fish.fn.trial3.html
It works perfectly for the HTML variant but the XML fails in IE throwing a "
Object doesn't support this property or method" error.
It seems to happen in the XML call and parse function on the line finding
the "link" within the XML object:
(snip)...
$.get(XMLurl, function(xml){
            $("site", xml).each(function(){ // step through each 'site' xml
node
            $(this).find("link").each(function(){ // find 'link' insidet the 'site'
node and turn it into html
                settings.parsedXML += "<div class='link'> "+$(this).text()+" ";
....(snip)
Any thoughts on what I'm doing wrong?
js:
/*
* AZlinker 0.4 Beta
* By Angelo Sozzi (http://www.sozzi.cn/jQuery)
* A jQuery plugin that will load XML or HTML links into divs
* by maping the UL>LI element names to filenames
* Demo at http://www.sozzi.cn/jQuery/a_zlink.html
*/
$.fn.AZlinker = function(settings) {
var settings = $.extend({
targetID: "#xml_here",
        elemname: "li",
        methodXML: true,
        parsedXML: ""
}, settings || {}); // overwrite settings if there are any given in the
function call
// other plugin code
$("#busy").hide();
var list = $(this).find(settings.elemname)
list.hover(
        function(){ $(this).next().addClass("medium");
                $(this).prev().addClass("medium");
                $(this).addClass("large");},
        function(){ $(this).next().removeClass("medium");
                $(this).prev().removeClass("medium");
                $(this).removeClass("large");}
            );
    // make clicked li active, read html and use to retrieve html or xml
        list.click(function(){ //Add an OnClick event to all <li>
        list.removeClass("active"); //OnClick Remove the active class from all
li
        $(this).addClass("active"); //Add class=active to clicked li
        if (settings.methodXML){
            var XMLurl = "xml/"+$.trim($(this).text())+".xml"; //Read out text from
litext li and make filename from it
            loadXML(XMLurl);
            }
        else {
        HTMLurl = "html/"+$.trim($(this).text())+".html"; //read out text from
litext li and make filename from it
        $(settings.targetID).load(HTMLurl);        //trim is used because text leaves a
space in IE
            }
        });    
// Helper funtions
// The Ajax XML call and parsing to html
    function loadXML(XMLurl){
        settings.parsedXML="";
            $.get(XMLurl, function(xml){
            $("site", xml).each(function(){ // step through each 'site' xml
node
            $(this).find("link").each(function(){ // find 'link' insidet the 'site'
node and turn it into html
                settings.parsedXML += "<div class='link'> "+$(this).text()+" ";
                }).end().find("description").each(function(){
                settings.parsedXML += $(this).text()+ " </div>";
                });    
            $(settings.targetID).html(settings.parsedXML);
            });
        });
    };
    // don't break the chain
    return this;
}; // end jQuery plugin
--
View this message in context: http://www.nabble.com/IE-XML-parsing-problem-tf2469241.html#a6884561
Sent from the JQuery mailing list archive at Nabble.com.
_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/