Нахождение единственного видимого <div>, который содержит динамический <ul>и возвращение идентификатора <ul> - PullRequest
0 голосов
/ 08 апреля 2011

У меня есть несколько динамических вкладок (div), таких как:

<div id="collection">

  <div id="tab-1">
    <ul id="sortable-tab-1">
      <li>
      </li>
    </ul>
  </div>

  <div id="tab-2" class="hidden">
    <ul id="sortable-tab-2">
      <li>
      </li>
    </ul>
  </div>
  .... etc ...
</div>

Я ищу лучший способ узнать, какая вкладка (div) видна с помощью jquery. Поскольку вкладки являются динамическими, я не знаю идентификаторов, но я знаю, какие div скрыты, поэтому я оставляю один div, который видим.

Мне нужно как-то найти ul id видимого div, а затем вернуть ul id. Так что в результате я остался с «sortable-tab-1».

В основном мне нужно знать, какая вкладка выбрана, чтобы я мог опубликовать правильный сортируемый список.

JavaScript вызывает у меня головную боль!

Может кто-нибудь помочь. Спасибо.

Ответы [ 2 ]

5 голосов
/ 08 апреля 2011
$('#collection > div:visible > ul').attr('id')
0 голосов
/ 11 апреля 2011

Теория: Я предполагаю, что все ваши скрытые вкладки имеют "что-то с вкладками" в качестве значения атрибута id и "скрытое" в имени класса. Так что, если вы найдете потенциальный div, у которого нет class = "hidden", вы можете найти что-нибудь из этого.

Код:

  $("div#collection > div[id^=tab-").each(function(index)
  {
    if($(this).hasClass("hidden")==false)
        return $(this).children("ul").attr("id");
  }

Внимание: Если у вас есть более одного div с «скрытым» классом, то будет возвращен только идентификатор последнего тега div ...

...