User jQuery per ottenere elementi nidificati da XML

Sto girando le mie ruote su questo. Come ottengo i valori dai seguenti elementi nidificati dal seguente XML (ho anche messo il mio codice qui sotto)? Sto cercando il valore “descShort” e poi il capitale “Last” e il capitale “change”:

  DJI NYSE DELAYED  Dow Jones Industrials DOW JONES DOW JONES      11144.57 11153.79 10973.92 11018.66 -125.9 -1.1%   11144.57 11153.79 10973.92 11018.66 -125.9 -1.1%  4 16-Apr-2010 16:03:00    XAO ASX DELAYED  ASX All Ordinaries All Ordinaries ALL ORDS 06-Mar-1970     5007.30 5007.30 4934.00 4939.40 -67.9 -1.4%   5007.30 5007.30 4934.00 4939.40 -67.9 -1.4%  997 19-Apr-2010 17:02:54   

 $.ajax({ type: "GET", url: "stockindices.xml", dataType: "xml", success: function(xml) { $(xml).find('index').each(function(){ var self = $(this); var code = self.find('indexDesc'); $(code).find('indexDesc').each(function(){ alert(self.find('descShort').text()); }); $('').html(values[0].text()).appendTo('#marq'); }); } }); 

Hai alcuni difetti nella tua funzione. Questo dovrebbe farlo:

 success: function(xml) { $(xml).find('index').each(function(){ var value = $(this).find('indexDesc descShort').text(); value += ' ' + $(this).find('indexQuote capital last').text(); value += ' ' + $(this).find('indexQuote capital change').text(); $('').text(value).appendTo('#marq'); }); } 

Due commenti sul tuo codice:

 var code = self.find('indexDesc'); $(code).find('indexDesc').each(function(){ alert(self.find('descShort').text()); }); 

Qui si assegna l’elemento indexDesc al code della variabile e successivamente si tenta di trovare l’elemento indexDesc all’interno di indexDesc (che non esiste).

 $('').html(values[0].text()) 

Mi chiedo davvero da dove vengono i values , non viene mai dichiarato. E non è necessario sfuggire alle doppie virgolette tra virgolette singole.


Consiglio davvero di leggere la documentazione e un tutorial per ottenere le basi di jQuery.

 success: function(xml) { $(xml).find('index indexDesc descShort').each(function(){ $('').html($(this).text()).appendTo('#marq'); }); } 

Secondo esempio richiesto (questo è il più leggibile, qualche ottimizzazione ansible)

 success: function(xml) { $(xml).find('index').each(function(){ var desc = $('indexDesc descShort', this).text(); var last = $('indexQuote capital last', this).text(); var change = $('indexQuote capital change', this).text(); //Do whatever with the text values }); }