Jquery Trouver un élément XML basé sur la valeur de l'un de ses enfants
Je suis en train de travailler sur un simple XML du répertoire app pour apprendre JQuery, et je ne peux pas comprendre comment faire quelque chose comme ceci:
Lorsque l'utilisateur saisit le premier nom d'un contact dans une zone de texte que je veux trouver l'ensemble du dossier de cette personne. Le XML ressemble à ceci:
<phonebook>
<person>
<number> 555-5555</number>
<first_name>Evelyn</first_name>
<last_name>Remington</last_name>
<address>Edge of the Abyss</address>
<image>path/to/image</image>
</person>
<person>
<number>+34 1 6444 333 2223230</number>
<first_name>Max</first_name>
<last_name>Muscle</last_name>
<address>Mining Belt</address>
<image>path/to/image</image>
</person>
</phonebook>
et le meilleur que j'ai pu faire avec jQuery est quelque chose comme ceci:
var myXML;
function searchXML(){
$.ajax({
type:"GET",
url: "phonebook.xml",
dataType: "xml",
success: function(xml){myXML = $("xml").find("#firstNameBox").val())}
});
}
Ce que je veux faire est de retourner l'intégralité de la <person>
élément afin que je puisse parcourir et afficher toutes les informations de cette personne. Toute aide serait appréciée.
Vous dites que vous ne voulez travailler avec un
<person>
avec un prénom? Est-il d'autres critères permettant de sélectionner la personne que vous voulez?OriginalL'auteur NateD | 2010-06-17
Vous devez vous connecter pour publier un commentaire.
Bien, je ne suis pas sûr de savoir comment vous voulez choisir l'
<person>
ou la façon dont vous voulez afficher le résultat, mais cet exemple trouverezEvelyn
, et place l'information relative à une variable;EDIT:
Quand vous dites que vous voulez "retourner" le
<person>
, sachez que vous ne pouvez pas il suffit de le retourner comme vous le feriez dans une fonction régulière. Le reste de votre code a probablement fini de s'exécuter avant l'AJAX a pas reçu de réponse, de sorte que toute tentative d'accès à la<person>
dans lemyXML
la variable de résultat à une valeur deundefined
.Au lieu de cela, vous avez besoin pour effectuer quelle que soit la manipulation que vous voulez à l'intérieur de la
success
de rappel, ou vous devez le placer à l'intérieur d'une autre fonction, et d'appeler cette fonction à partir de l'intérieur de lasuccess
de rappel.L'exemple que j'ai donné le travail à l'intérieur.
Je ne suis toujours pas sûr de savoir comment il est que vous voulez sélectionner la personne, bien que. Si vous avez voulu fonctionner sur chacun d'eux, puis vous le feriez dans une boucle. Par exemple, vous pourriez utiliser:
OriginalL'auteur user113716