Обход списка JQuery с использованием селекторов или методов - PullRequest
0 голосов
/ 11 мая 2010

У меня, в основном, проблемы с обходом неупорядоченного списка и получением элементов списка.

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


        }

хорошо, у меня в основном список элементов в одном неупорядоченном списке, а затем неупорядоченный список, содержащий список элементов, в которых хранятся элементы, сам.

Для каждого из них я пытаюсь выбрать дату начала

скажем, у меня было 3 неупорядоченных списка внутри OuteroListItems, я бы хотел выбрать все 3 из этих s.StartDates и покрасить их в красный цвет в oListItems.

Я пробовал это, но он выбирает только первый элемент во внешних списках 3-й элемент внутреннего списка и окрашивает его в красный цвет.

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

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

    });

1 Ответ

1 голос
/ 11 мая 2010

Во-первых, вам нужно использовать класс вместо идентификатора :) Идентификаторы должны быть уникальными , или вы получите все виды прикольного поведения ... когда они не уникальны, это недопустимый 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");​

Вы можете увидеть рабочий примерздесь

...