2010-04-07 2 views
0

Je suis en train de traiter le formulaire d'abonnement avec jQuery/ajax et j'ai besoin d'afficher les résultats avec la fonction de succès (ils sont différents selon si l'email existe dans la base de données). Mais l'astuce est que je n'ai pas besoin de h2 et de la première balise "p".modifier ajax retourné des données avant de montrer

Comment est-ce que je peux montrer seulement div # alertmsg et le deuxième "p" tag?

J'ai essayé de supprimer des éléments inutiles avec la méthode décrite here, mais cela n'a pas fonctionné.

Voici mon code:

var dataString = $('#subscribe').serialize(); 

$.ajax({ 
    type: "POST", 
    url: "/templates/willrock/pommo/user/process.php", 
    data: dataString, 
    success: function(data){ 
    var result = $(data); 
    $('#success').append(result); 
} 

Voici les données renvoyées:

<h2>Subscription Review</h2> 

<p><a href="url" onClick="history.back(); return false;"> 
<img src="/templates/willrock/pommo/themes/shared/images/icons/back.png" alt="back icon" 
    class="navimage" /> Back to Subscription Form</a></p> 

<div id="alertmsg" class="error"> 

<ul> 
<li>Email address already exists. Duplicates are not allowed.</li> 
</ul> 

</div> 

<p><a href="login.php">Update your records</a></p> 

Répondre

4

Vous pouvez utiliser la partie de contexte de l'opérateur $(), comme ceci:

var dataString = $('#subscribe').serialize(); 

$.ajax({ 
    type: "POST", 
    url: "/templates/willrock/pommo/user/process.php", 
    data: dataString, 
    success: function(data){ 
     var result = $(data);   
     $("h2, p:first", result).remove(); 
     $('#success').append(result); 
    } 
}); 

Cela recherche <h2> et le premier <p> de la réponse et supprime eux avant d'ajouter. Le contexte par défaut (élément à regarder sous) est document, donc quand vous appelez $("h2") vous êtes en fait en appelant $("h2", document) (qui appelle en fait $(document).find("h2")) ... vous pouvez aussi mettre quelque chose par défaut, dans ce cas, la réponse.

Questions connexes