使用选择器或方法帮助的JQuery List Traversal

时间:2010-05-11 09:55:04

标签: jquery css css-selectors traversal loops

我在浏览无序列表和检索列表项时遇到了一些麻烦。

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


        }
好吧,我基本上有一个无序列表中的项目列表,然后是一个无序列表,其中包含一个包含项目的项目列表。

对于其中的每一个,我都在尝试选择开始日期

所以说我在'OuteroListItems'中有3个无序列表,我想选择所有这3个s.StartDates并在'oListItems'中将它们涂成红色。

我已经尝试了这个,但它只选择外部列表中的第一个元素第3个内部列表元素并将其着色为红色。

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

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

    });

1 个答案:

答案 0 :(得分:1)

首先你需要使用类而不是ID :) IDs have to be unique或者你会得到各种各样的时髦行为......当它们不是唯一的时候它是无效的HTML,只需改变id= in您的代码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>

然后,您可以使用以下选择器来获取每个StartDate <li>

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

You can see a working example here