2010-05-11 97 views
0

我基本上有一点麻烦通过一个无序列表遍历和retreiving列表项。JQuery的目录遍历使用选择或方法帮助

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); 


     } 

好吧,我基本上有一个项目在一个无序列表中的列表,然后一个无序列表控股持有项目initself项的列表。

对于这些我想选择开始日期每一个

所以说我有“OuteroListItems”内3名无序列表,我希望选择这些s.StartDates的所有3和它们上色红色在'oListItems'中。

我已经试过这一点,但它只有在外部列表内第三次列表元素和着色红色选择的第一要素。

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

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

    }); 
+0

采取对jQuery的强大功能之一看看,遍历方法。 http://www.jaftalks.com/Home/Show/Introduction-to-JQuery-Traversal-Methods – JafTalks 2010-10-13 11:34:52

回答

1

首先,你需要使用的,而不是ID :) IDs have to be unique类或者你会得到各种各样的时髦行为......当他们不是唯一的它是无效的HTML,只是在你的代码更改id=class=解决这个问题。你的输出现在应该是这样的:

<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> 

然后你可以用下面的选择让每个起始日期<li>

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

You can see a working example here

+0

很好,谢谢你的帮助。 。工作一种享受。 – Calibre2010 2010-05-11 10:30:21

+0

假设后来想通过这些列表项起始日期的每一个遍历并做一些与各一个,ASY一些字符串操作,我会那么每一个()循环 喜欢的价值观做出等于一个变量,然后$(变量)。每个(函数(){}); ? – Calibre2010 2010-05-11 14:24:04

+0

@ Calibre2010 - 你可以通过一个函数来'的.text()'和'的.html()',无论你需要的,这里是这里一个例子:http://jsfiddle.net/jnZtX/1/只要改变回归你想要的结果集:) – 2010-05-11 14:34:40