2010-05-11 8 views
0

J'ai un peu de difficulté à parcourir une liste non ordonnée et à récupérer les éléments de la liste.JQuery List Traversée à l'aide de sélecteurs ou de méthodes help

foreach (MyTypeObject s in result) 
     { 

      oList.Clear(); 

      { 


      oList.AppendFormat("<ul id='OuteroListItems'>"); 
      oList.AppendFormat("<li>"); 
      oList.AppendFormat("<ul id='oListItems'>"); 
      oList.AppendFormat("<li>" + s.Name + "</li>"); 
      oList.AppendFormat("<li>" + s.NameDesc + "</li>"); 
      oList.AppendFormat("<li>" + s.StartDate + "</li>"); 
      oList.AppendFormat("<li>" + s.EndDate + "</li>"); 
      oList.AppendFormat("</ul>"); 
      oList.AppendFormat("</li>"); 
      oList.AppendFormat("</ul>"); 

      sb.Append(oList); 


     } 

ok, j'ai essentiellement une liste d'éléments dans une liste non ordonnée et une liste non ordonnée la tenue d'une liste des articles qui contiennent des éléments initself.

Pour chacun d'entre eux, je suis en train de choisir la date de début

donc dire que j'avais 3 listes à puces à l'intérieur des « OuteroListItems », je voudrais tout sélectionner trois de ces s.StartDates et les couleur rouge dans 'oListItems'.

Je l'ai essayé mais il ne sélectionne que le premier élément dans les listes extérieures 3ème élément de liste interne et la coloration rouge.

$("ul#OuteroListItems li").each(function(){ 

    $("ul#oListItems li:eq(2)").css("color", "red"); 

    }); 
+0

Jetez un oeil sur l'une des puissantes fonctionnalités de jQuery , les méthodes de traversée. http://www.jaftalks.com/Home/Show/Introduction-to-JQuery-Traversal-Methods – JafTalks

Répondre

1

Vous devez d'abord utiliser la classe au lieu d'ID :) IDs have to be unique ou vous aurez toutes sortes de comportements ... génial quand ils ne sont pas unique, il est HTML invalide, il suffit de changer id= dans votre code à class= réparer ça. Votre sortie devrait ressembler à ceci:

<ul class='OuteroListItems'> 
    <li> 
    <ul class='oListItems'> 
     <li>s.Name</li> 
     <li>s.NameDesc</li> 
     <li>s.StartDate</li> 
     <li>s.EndDate</li> 
    </ul> 
    </li> 
</ul> 

Ensuite, vous pouvez utiliser le sélecteur suivant pour obtenir chaque StartDate <li>:

$(".oListItems li:nth-child(3)").css("color", "red");​ 

You can see a working example here

+0

bien, merci pour l'aide. . fonctionne un régal. – Calibre2010

+0

Supposons que je souhaite ensuite traverser chacun de ces éléments de la liste StartDate et faire quelque chose avec chacun d'eux, avec quelques manipulations de chaînes, puis je() boucler les valeurs comme make that égal à une variable puis $ (variable) .each (function() {}); ? – Calibre2010

+0

@ Calibre2010 - Vous pouvez passer une fonction à '.text()' et '.html()', selon ce dont vous avez besoin, voici un exemple ici: http://jsfiddle.net/jnZtX/1/ Il suffit de changer le retour à soit ce que vous voulez que le résultat soit réglé à :) –