2

我使用 tabber.js ( www.barelyfitz.com/projects/tabber/ ) 创建选项卡列表,然后我使用 columniser 函数对选项卡中的信息进行分列。

但是我的 jquery 选择器不起作用:$('("div.tabberlive div").not(".tabbertabhide") ul')。我有 $('div.tabbertab ul') ,我认为它可以在所有选项卡上工作并正常显示,但它会将隐藏的选项卡分列并显示它们。我希望使其更具体到可见的 div (不幸的是,它没有唯一的目标类)会有所帮助。

我的HTML如下:

<div class="tabberlive">
  <ul class="tabbernav">...</ul>
  <div class="tabbertab "><ul>...</ul></div>
  <div class="tabbertab tabbertabhide"><ul>...</ul></div>
  <div class="tabbertab tabbertabhide"><ul>...</ul></div>
  <div class="tabbertab tabbertabhide"><ul>...</ul></div>
</div>

分列器功能是:

$(document).ready(function(){
  var size = 6,
      $ul  = $('("div.tabberlive div").not(".tabbertabhide") ul'),
      $lis = $ul.children().filter(':gt(' + (size - 1) + ')'),
      loop = Math.ceil($lis.length / size),
      i    = 0;

  $ul.css('float', 'left').wrap("<div style='overflow: hidden'></div>");

  for (; i < loop; i = i + 1) {
    $ul = $("<ul />").css('float', 'left').append($lis.slice(i * size, (i * size) + 6)).insertAfter($ul);
  }
});

我试图猜测选择器但显然失败了......非常感谢任何帮助!

4

1 回答 1

4

这不是好的语法。

你可以使用这个:

$('div.tabberlive div:not(.tabbertabhide) ul')

或者你可以使用

$('div.tabberlive div').not('.tabbertabhide').find('ul')

不允许您通过删除不需要的元素来过滤 jQuery 集。

find为您提供后代之间的匹配元素。

于 2012-10-03T11:36:09.053 回答