Boucle à travers des éléments dans une variable

Comment boucler le HTML stocké dans une variable pour les balises ‘ul’? C’est ce que j’ai jusqu’à présent mais l’alerte () ne se déclenche même pas, je suis un peu perdu …

var data = 'HTML'; $('ul', data).each(function(i,v) { var theTag = v.tagName; var theElement = $(v); var theValue = theElement.html(); alert(theTag+'\n'+theElement+'\n'+theValue); }); 

Merci

Vous essayez d’utiliser la forme “sélecteur, contexte” de l’ appel $() :

jQuery (sélecteur [, contexte])
sélecteur Une chaîne contenant une expression de sélecteur
context Un élément DOM, un document ou jQuery à utiliser comme contexte

Une chaîne de code HTML ne correspond à aucun des éléments que le context est censé être. Par conséquent, jQuery ne sait pas quoi faire avec vos arguments et fait une mauvaise estimation.

Vous voulez probablement le faire comme ceci:

 $(data).filter('ul').each(function(i,v) { //... }); 

Démo: http://jsfiddle.net/ambiguous/gxGB8/

Ou, si vous ne savez pas à quel niveau se trouveront les éléments

    , enveloppez le code HTML dans un

    et utilisez find au lieu de filter :

     $('
    ' + data + '
    ').find('ul').each(function(i, v) { //... });

    Démo: http://jsfiddle.net/ambiguous/tM4ua/

    .val() renvoie la valeur d’une entrée de formulaire.
    Cela ne fonctionne pas sur des éléments arbitraires.

    Vous voulez .text() ou .html() .

    EDIT : Pour trouver des éléments dans une chaîne HTML, vous devez écrire $(html).find('ul')

    Essayez de supprimer la scope du contexte de données de votre sélecteur ul

    Essaye ça:

     $('ul').each(function() { // Gets underlying element object var theElement = $(this).get(0); var theTag = theElement.tagName; // Can also use .text() if you want just the textual content var theValue = $(this).html(); // theElement can't be printed, it's an object alert(theTag+'\n'+theValue); }); 

    Je suppose ici que vous voulez le contenu d’un certain nombre de balises

      plutôt que les parties

    • d’une liste unique.

      Vérifiez ce violon

      Cela pourrait aider!