2010-09-19 7 views
1

Salut, je suis vraiment nouveau à Jquery et ai un problème avec mon script, je veux accéder à la 2ème balise 'heading' dans mon fichier xml en utilisant jquery. c'est mon script donc pour mais ce que je veux faire est assigner un vairiable à la 2ème valeur de l'en-tête.trouver un noeud en XML en utilisant Jquery

$(document).ready(function() 
     { 

      $.ajax({ 
       type: "GET", 
       url: "task.xml", 
       dataType: "xml", 
       success: displayXml 
      }); 

     function displayXml(data){ 

      $(data).find("tasks").each(function() { 

      var heading = $(this).find("heading").text(); 

      }); 
     } 

     }); // doc ready 

Ceci est mon document xml. Ce que je cherche est quelque chose comme

nom = $ ("heading", 2) .text(); la valeur étant 'New Job'. Quelqu'un peut-il m'aider avec ça sil-vous-plait ?

 <?xml version="1.0" encoding="utf-8"?> 
     <tasks> 

       <heading>Home </heading> 

       <heading>New Job </heading> 

       <heading>System </heading> 

     </tasks> 

Répondre

2

Est-ce ce que vous cherchez?

$("heading:eq(1)",data).text(); 

Comme vous pouvez le voir ici dans la doc http://api.jquery.com/jQuery/jQuery() (comme $()) reçoit second paramètre « contexte », dans votre cas ce sera data et jQuery recherche dans ce contexte, au lieu de votre HTML/DOM.

1

La réponse d'insomniac est, je crois, pas tout à fait correcte, car :nth-child(2) renvoie tous les autres sélecteurs, pas seulement le second. Le sélecteur dont vous avez besoin est :eq(1). Cela permet au deuxième élément en fonction de la sélection précédente:

$(this).find('heading:eq(1)').text(); 

Notez que eq utilise l'indexation 0 à base (à savoir le premier élément est 0, le deuxième est 1, etc.).

Voir l'API jQuery pour plus d'informations: http://api.jquery.com/eq-selector/

+0

Oui, vous avez raison. –

Questions connexes