1

次の構造を持っています:

<div id="block1">
   <ul class="category">
      <li>Comedy</li>
   </ul>
</div>

<div id="block2">
   <ul class="category">
       <li>Comedy</li>
       <li>Drama</li>
   </ul>
</div>

順序付けられていないリストcategoryはphpforeach()で生成され、一部のブロックにulは1が含まれli、他のブロックには2、3、またはXが含まれる場合があるため、サブメニューのこれらのli余分なsを最初のものを上にして変換する必要があります。lili

  • 私の質問は、<li>最初のものの後にある残りの部分をどのように選択するかです。残りのをli取得したら、それらを別の内部にラップしulてサブメニューを作成できるためです。

次のコードを使用して、オプション以上のリストをフィルタリングできますが、それではどうしますか?

    $('.categories').filter(function() {
        if($(this).children("li").length > 1) {
            console.log($(this).text());
        }
    });
4

2 に答える 2

1

メソッドを使用できますwrapAll

$('ul.category').each(function(){
  $('li:gt(0)', this).wrapAll('<ul/>')
})
于 2012-08-31T21:50:53.763 に答える
0

li最初の要素の後にすべての要素を取得するには、.slice()

$(this).children("li").slice(1);

次に、これらの要素を使用して、必要なラッピングを実行できます

于 2012-08-31T21:51:37.120 に答える