2012-09-25 3 views
1

Voici un test de Firebug. J'essaie de créer dynamiquement un objet jQuery, puis de trouver des parties à l'aide de sélecteurs de classe ou d'identifiant. Notez comment les appels find() donnent des résultats vides.jQuery: Extraction de parties de html chargé dynamiquement

>>> var testhtml = '<div class="oggi">h</div>' 
undefined 
>>> $(testhtml) 
[div.oggi] 
>>> $(testhtml).find(".oggi") 
[] 
>>> var testhtml2 = '<div id="yggi">hjhj</div>' 
undefined 
>>> $(testhtml2) 
[div#yggi] 
>>> $(testhtml2).find("#yggi") 
[] 

Dois-je interpréter cela comme vous ne parvenez pas à faire des opérations sur jQuery html qui ne sont pas connectés au principal arbre DOM dans le navigateur? Y at-il un autre truc que je pourrais utiliser pour faire ce travail?

J'ai réussi à obtenir quelque chose qui fonctionnait mieux en créant une div temporaire dans le fichier html, en y chargeant les données et en faisant ensuite find().

Ma tâche actuelle consiste à charger un morceau de code HTML en utilisant ajax, puis à en copier différentes parties à différents endroits de la page Web.

Répondre

2

.find() est utilisé pour trouver les enfants, utilisez .filter() à la place.

var testhtml = '<div class="oggi">h</div>'; 

// if you want to check it whether has a class, use  
console.log($(testhtml).is(".oggi")); 

// or you could use filter to get the element you want. 
console.log($(testhtml).filter('.oggi')); 
+0

D'oh! Spot sur - merci. J'ai besoin de cinq minutes de plus avant que je puisse cliquer pour accepter sur celui-ci. :) –

Questions connexes