La manipulation de la “data” à partir de $.ajax success: function(data) {
j'ai ce une simple question.
$.ajax({
type: "POST",
url: "/",
data: $(".form").serialize(),
dataType: "html",
success: function (data) {
$("#id").html(data);
}
});
À l'intérieur de "données" est le code html que je suis de l'insérer dans le DOM. Pas de problème. Mais je tiens à manipuler les "données" avant de le faire. Comment puis-je le faire? Par exemple il y a quelques li éléments dans "données". Comment pourrais-je par exemple supprimer le dernier élément li de la "data" de la chaîne avant de l'insérer dans le DOM?
J'ai essayé quelque chose comme
$(data li:last)remove();
...mais qui n'a pas fonctionné.
Merci pour votre aide.
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin d'un DIV caché. Si vous voulez convertir une chaîne html pour un DOM fragment, il suffit d'appeler jQuery sur elle. Dans votre exemple:
Certains IE considérations bien que:
var div = jQuery("<div/>"); div.html(data);
puis de le manipuler, il y avant de faire$("#id").html(div.html())
.Vous pouvez créer un objet jQuery à partir de code HTML arbitraire, par exemple:
Donc, vous pourriez faire quelque chose comme ceci:
Voici un exemple de travail, vous pouvez jouer avec sur JS Bin: http://jsbin.com/ejule3/edit
Les données renvoyées une chaîne de caractères, et ne peut pas être trouvé dans le dom via jQuery jusqu'à ce qu'il est réellement dans les DOM. Vous aurez besoin de convertir cette chaîne et extraire les données dont vous avez besoin, ou de les modifier après que vous insérez dans les DOM.
Jay répondre est de droite, vous aurez besoin d'insérer le code HTML des données dans les DOM en premier (ou en analyser la chaîne, ce qui semble lourd). Ce que vous pouvez faire est d'ajouter les données à une cachée
DIV
, le modifier, puis de copier les données vers un autre élément du DOM ou tout simplement afficher lesDIV