Jquery/javascript, filtrage html de l'objet de l'ajax réponse
J'ai ce morceau de code html:
<div id="1">
<div class="text">
Text for div 2
</div>
<img src="images/image1.jpg"></img>
</div>
<div id="2">
<div class="text">
Text in div 2
</div>
<img src="images/image2.jpg"></img>
</div>
Qui je prends avec un simple .ajax-appel
var html = $.ajax({
url: "htmlsnippet.html",
cache: false,
async: false,
dataType: "html"
}).responseText;
Si je filtre avec:
var htmlFiltered = $(html).filter("#1");
il fonctionne très bien, je reçois l'ensemble de la div avec id="1",
mais si j'utilise:
var htmlFiltered = $(html).filter("#1 .text");
la htmlFiltered variable est un objet vide.
Je ne peux pas comprendre ce que je fais mal.
Je ne pense pas que l'Id commence avec un certain nombre sont valables
OriginalL'auteur rjm | 2011-05-05
Vous devez vous connecter pour publier un commentaire.
Vous devez les stocker cette façon:
EDIT: Votre façon d'obtenir le html fonctionne, mais il n'est pas recommandé.
Vous ne pouvez pas prendre votre dernier élément, parce que vous utilisez
filter
au lieu defind
, donc vous devriez avoir:au lieu de
Également le W3C recommande de ne pas avoir des Id numériques.
EDIT 2: Cela devrait fonctionner:
Espère que cette aide. Cheers
Désolé, mal lu votre réponse et supprimé le commentaire, mais a oublié d'enlever le downvote. Il fixe maintenant.
Merci, Edgar, mais il ne fonctionne pas. J'ai renommé les divs et utilisé votre méthode d'obtenir et de stocker le code html, mais .le filtre ne parvenez toujours pas à saisir tous les éléments sauf le numérotés de divs. .trouver ne fonctionne pas du tout.
Ok. Maintenant, je sais ce qui se passe. Je suis en train de monter ma solution
Merci,très bien ! Qui ont travaillé. Je déteste être un bourrin, mais pouvez-vous expliquer comment vous en êtes arrivé à cette solution ? Je vais avoir du mal à comprendre ce qui se passe à l'objet html une fois que je l'ai attraper avec l'Ajax et de l'utilisation du filtre.
OriginalL'auteur Edgar Villegas Alvarado
Si vous n'avez pas besoin d'une fonctionnalité spéciale donnée par le
$.ajax
méthode, vous devriez donner$.load()
un essai:http://api.jquery.com/load/#loading-page-fragments
OriginalL'auteur Volker Rose
Cela fonctionne pour moi :
OriginalL'auteur Fedir RYKHTIK