Comment ajouter des éléments à une liste non ordonnée en utilisant jquery

Dans ma réponse json, je veux la parcourir en utilisant $.chacun, puis ajoutez des éléments à un élément <ul></ul>.

    $.each(data, function(i, item) {

        // item.UserID
        // item.Username

     }

Je veux ajouter un

  • , et créez une balise href qui relie la page utilisateurs.
  • 42
    demandé sur BryanH 2009-07-30 22:31:45

    4 réponses

    Le moyen le plus efficace est de créer un tableau et d'ajouter au dom une fois.

    Vous pouvez le rendre encore meilleur en perdant tout le concat de chaîne de la chaîne. Poussez plusieurs fois dans le tableau ou construisez la chaîne en utilisant += , puis poussez, mais cela devient un peu plus difficile à lire pour certains.

    Vous pouvez également envelopper tous les éléments d'un élément parent (dans ce cas, l'ul) et l'ajouter au conteneur pour de meilleures performances. Il suffit de pousser la '<ul>' et '</ul>' avant et après chaque et ajouter à un div.

       var items = [];
    
       $.each(data, function(i, item) {
    
              items.push('<li><a href="yourlink?id=' + item.UserID + '">' + item.Username + '</a></li>');
    
       });  // close each()
    
       $('#yourUl').append( items.join('') );
    
    86
    répondu redsquare 2012-06-20 04:41:23

    J'ai décidé de prendre l'excellente réponse de redsquare et de l'améliorer un peu. Plutôt que D'ajouter du HTML, je préfère ajouter des objets jQuery. De cette façon, je n'ai pas à m'inquiéter de m'échapper pour HTML et ce qui ne l'est pas.

    Dans cet exemple, data contient un tableau d'objets, analysés à partir de JSON. Chaque objet du tableau a une propriété .title. J'utilise la fonction each de jQuery pour les parcourir.

    var items=[];
    $(data).each(function(index, Element) {
        items.push($('<li/>').text(Element.title));
    });
    $('#my_list').append.apply($('#my_list'), items);
    

    Je pousse un nouvel objet jQuery sur le tableau items, mais avec le chaînage de méthode, je peux définir propriétés à l'avance, telles que .text.

    J'ajoute ensuite le tableau d'objets à la liste <ul id="my_list"> en utilisant la méthode de Lars Gersmann.

    6
    répondu Brad 2011-09-28 13:55:58

    Obtenez le <ul> en utilisant la syntaxe du sélecteur jQuery, puis appelez append:

    $("ul#theList").append("<li><a href='url-here'>Link Text</a></li>");
    

    Voir jQuery docs pour plus d'informations.

    5
    répondu krohrbaugh 2009-07-30 18:36:24
    $.each(data, function(i, item) {
    
           var li = $("<li><a></a></li>");
    
           $("#yourul").append(li);
    
           $("a",li).text(item.Username);
           $("a",li).attr("href", "http://example.com" + item.UserID);
    
        }
    
    2
    répondu Philippe Leybaert 2015-07-10 08:36:22