找到唯一可见的<div>,其中包含动态<ul>并返回<ul> id </ul> </ul> </div>

时间:2011-04-08 00:07:58

标签: jquery list jquery-ui-sortable selected posting

我有一堆动态标签(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>

我正在寻找找出使用jquery可见的标签(div)的最佳方法。由于标签是动态的,我不知道id,但我知道哪个div是隐藏的,因此留下一个可见的div。

我需要以某种方式找到可见div的 ul id 然后返回ul id。因此,我的结果是'sortable-tab-1'。

基本上我需要知道选择了哪个标签,这样我才能发布正确的可排序列表。

JavaScript给了我一个头痛!

任何人都可以提供帮助。谢谢。

2 个答案:

答案 0 :(得分:5)

$('#collection > div:visible > ul').attr('id')

答案 1 :(得分:0)

理论:我假设你所有隐藏的标签都有“tab-something”作为id属性值,并且在类名中有“隐藏”。因此,如果你发现一个没有class =“hidden”的潜在div,那么你可以从中找到任何东西。

<强>代码:

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

警告:如果您有多个带有“隐藏”类的div,则只会返回div的标记ID ...