I've looked it up and it seems to be a bug with how IE works. Apparently the XML file is not returning the correct XML header by default: http://dev.jquery.com/ticket/3598
If you can use server-side scripting, you can try to force the response header so it's XML. Another solution is posted here: http://groups.google.com/group/jquery-en/browse_thread/thread/036d49aead899d68 look at the bottom of the thread from Diego A for the text2xml function. Copy that code to somewhere in yours and call it like: $('photograph', xml).each(function() { xml = text2xml(xml); // do your stuff } On Mar 20, 3:58 pm, "eco...@googlemail.com" <eco...@googlemail.com> wrote: > Sorry if I appear impatient, but I was wondering whether anyone had > seen this post? > > Please can someone have a look at this problem for me, or tell me the > best way to iterate through the XML file with jQuery? > > Thanks, > Charlie > > On Mar 20, 12:54 pm, "eco...@googlemail.com" <eco...@googlemail.com> > wrote: > > > Hi, > > > I am fairly new to jQuery, but found it has cut my dev time > > tremendously, and things just work great in my prototypes, developing > > on Windows Vista, using DW CS4, with my default browser set to Firefox > > 3.0.7. > > > However, on completion of a prototype, I was ready to show a client, > > and thought I better run it through Internet Explorer in case I was > > asked to demo it on both browsers. > > > That was when the headaches started! > > > I managed to work out most of it without too much problem, but the > > following issue has got me stumped. I have reduced the code to the > > smallest snippet that continues to use the code structure and design I > > am trying to implement. I am open to redesign, although there are > > good reasons why I am doing things as I am. However... > > > Basically, I am populating an unordered list via JS & jQ, using an XML > > index file to locate filenames of images, which are then placed in a > > container. It works like a dream in Firefox! I have posted the code > > further below... > > > In IE7, I am told that on line 25 (photos.js), "dsp.0.filename is null > > or not an object". Through debugging, it appears that "px = $ > > ('photograph', xml).each(function()" on line 13 is not offering a list > > to be traversed, so the code block of line 14 - 20 is never run, thus > > failing to populate dsp wih any objects. > > > Can someone please explain what I am doing wrong (other than expecting > > IE7 to behave like a browser), or how I can workaround this apparent > > issue? > > > (I have posted all the relevant files below, sorry if it makes this > > post a little long..) > > > Thanks in advance, > > Charllie > > > "photos.js" > > [code] > > // JavaScript Document > > > var dsp = new Array(); // gallery index > > var uls; > > var px; > > > $(function() { > > $.get("photos.xml", {}, function(xml) > > { > > var id = 0; > > > // populate the arrays containing the photos, for easy > > reference, > > from the xml index file > > px = $('photograph', xml).each(function() > > { > > var photo = new Object(); > > photo.filename = $(this).find("filename").text(); > > photo.id = id++; > > > dsp.push(photo); > > }); > > > // populate the unordered lists with thumbnails > > uls = $("ul[class=ulscr]").each(function() > > { > > var h = "<a href='javascript:selectimage();'><img > > src='photos/ > > thumbs/" + dsp[0].filename + "' /></a>"; > > $(this).append(h); > > > }); > > });}); > > > [/code] > > > "photos.xml" > > [code] > > <photographs> > > <photograph><filename>DSC_2574.JPG</ > > filename><datetaken>20090109211616</datetaken><height>425</ > > height><width>640</width><format>L</format></photograph> > > <photograph><filename>DSC_2575.JPG</ > > filename><datetaken>20090109211951</datetaken><height>640</ > > height><width>425</width><format>P</format></photograph> > > </photographs> > > [/code] > > > "index.html" > > [code] > > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" > > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> > > <html xmlns="http://www.w3.org/1999/xhtml"> > > <head> > > <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> > > <title>Snippet</title> > > <script src="javascript/jquery-1.3.2.js"> type="text/javascript"</ > > script> > > <script type="text/javascript" src="photos.js"></script> > > </head> > > > <body class="twoColElsLt"> > > <div id="landleft" class="scroller" style="float: left;"> > > <ul id="ulll" class="ulscr"> > > </ul> > > </div> > > </body> > > </html> > > [/code] > >