2010-05-11 36 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