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 に答える