1


0

Jqueryを使用して、「li」タグの第1レベルを1つのdivにラップします

次の質問があります。

次のようなマルチレベルのHTMLリストがあるとします。

                   subcat subcat 1
                   subcat subcat 2
                   subcat subcat 3


            subcat 2
            subcat 3




            subcat 4
            subcat 5
            subcat 6

1つのdivのみにラップする必要があります ''

タグ(「ヘッダー1」、「ヘッダー2」…​ リストの第1レベルに属するすべての子)。

結果は次のようになります。

                   subcat subcat 1
                   subcat subcat 2
                   subcat subcat 3


            subcat 2
            subcat 3




            subcat 4
            subcat 5
            subcat 6

`wrap()`関数を試しましたが、期待どおりに機能しませんでした

この仕事をする方法はありますか?

2 Answer


3


$( '。catalog> li')。wrapAll( '

');

しかし、あなたは深刻な無効なHTMLで開始と終了の両方をしているので、おそらくそれを修正してからこの質問をもう一度してください。


0


まず、次のような有効なHTMLから始めましょう。

   header 1

        subcat 1

               subcat subcat 1
               subcat subcat 2
               subcat subcat 3


        subcat 2
        subcat 3


   header 2

        subcat 4
        subcat 5
        subcat 6


​

次に、http://api.jquery.com/wrapAll/ [.wrapAll()]を使用して、次のようにそれらをキャップラップします。

$(".catalog > li").wrapAll("");​

これにより、次のような有効なHTMLが生成されます。

        header 1

            subcat 1

                   subcat subcat 1
                   subcat subcat 2
                   subcat subcat 3


            subcat 2
            subcat 3

        header 2

            subcat 4
            subcat 5
            subcat 6

http://jsfiddle.net/VrcSe/ [ここでテストできます]が、おそらく元の ``

、たとえば、「display:block」。