2011-06-23 3 views
1

J'ai un formulaire soumis via AJAX. La réponse du serveur dans une page Web entière (HTML). Je voudrais alerter seulement le contenu dans une balise d'envergure avec l'id "message" qui existe sur cette page de réponse. Je ne veux pas alerter toute la page. Comment faire ça?Comment saisir une seule partie d'une page dans jQuery?

$.ajax({ 
    url: '/accounts/login/', 
    data: $(this).serialize(), 
    success: function(output) { 
     alert(output) 
    } 
}); 

Mon code avertit la page.

Répondre

0

Essayez ceci:

$.ajax({ 
    url: '/accounts/login/', 
    data: $(this).serialize(), 
    success: function(output) { 
     alert($('#message', output).text()); 
    } 
}); 
+0

oui cela fonctionne, merci – Bernet

+0

@Bernet, pas de problème^_^n'oubliez pas de sélectionner une réponse acceptée lorsque vous pouvez :-D – Neal

2
$.ajax({ 
    url: '/accounts/login/', 
    data: $(this).serialize(), 
    success: function(output) { 
     alert($(output).find('#message').html()); 
    } 
}); 
+0

Alertés nulle. – Bernet

+0

ahh, le message était-il dans une entrée html? cela expliquerait pourquoi .html était nul, mais pas de texte. – Patricia

0

meilleure façon serait probablement d'ajouter la page à votre page dans un élément caché et sélectionnez la durée à l'aide getElementById. Alternativement, si c'est xhtml, vous pouvez le charger dans un document xml et utiliser xpath. Et, peut-être le plus dur, vous pouvez analyser la chaîne et trouver la partie correspondant au format html que vous voulez.

Ou, l'un de ces beaux exemples :)

Questions connexes