2010-02-10 9 views
0

Fondamentalement, je suis l'analyse d'un fichier XML et la récupération de certains éléments de ce fichier XML en utilisant chaque fonction. Cependant, je dois maintenant retourner la première valeur, pas la valeur «chaque». Si quelqu'un pouvait l'aider, ce serait génial.Récupérer un élément de jQuery chaque fonction

code

jusqu'à présent:

// basic ajax call to retrieve xml file - then on success sent over to checkNotDate function 
$('#notifyBox').empty(); 
    $.ajax ({ 
     type: "GET", 
     url: "anyFeed.xml", 
     datatype: "xml", 
     success: checkNoteDate 
}); 
// parse xml and display in alert 

function checkNoteDate (xml) { 
    $(xml).find("entry").each(function() 
    { 
     var $item = $(this); 
     var title = $item.find("title").text(); 
     var link = $item.find("link").attr("href"); 
     var output = "<a href=\"" + link + "\" target=\"_self\">" + title + "<\/a>" + "<br />"; 
     alert(output); 
    }); 
} 

Tout ce que je dois faire est d'obtenir que la première valeur et enregistrer dans un var.

Répondre

1

Il suffit de sélectionner le premier élément en utilisant find():

var $item = $(xml).find('entry:first'); 

ou en utilisant une syntaxe similaire:

var $item = $(xml).find('entry').eq(0); 
var $item = $('entry:first', xml); 
var $item = $('entry', xml).eq(0); 

Tous font la même chose.

En outre, vous pourriez avoir juste retourné false à la fin de l'instruction each, qui aurait causé l'arrêt de la boucle après la première itération. Cela aurait eu le même effet de manipuler seulement le premier objet, mais il est bien sûr plus propre d'utiliser les méthodes que j'ai mentionnées plus haut.

+0

Salutations Tatu Je vais essayer ce matin et vous faire savoir comment je m'entends. Merci un million – jonnyhitek

+0

mec grâce a - pas sûr si elle est la plus élégante mise en œuvre, mais voici ce qui a fonctionné ci-dessous: \t fonction checkNoteDate (xml) { \t $ (xml) .Find ('entrée: first') \t { \t var $ item = $ (this); \t var title = $ item.find ("title: first"). Text(); \t var link = $ item.find ("lien: premier"). Attr ("href"); \t var sortie = "" + titre + "<\/a>" + "
"; \t alerte (sortie); \t \t}} \t \t}); –
jonnyhitek

+0

Je suis surpris que cela a fonctionné. Vous n'avez pas besoin d'utiliser 'var $ item = $ (this)', faites simplement 'var $ item = $ (xml) .find ('entry: first')'. –

Questions connexes