0

これが私が達成しようとしていることです。

JQuery を使用して、ネストされたメニューがあることを示すネストされた>要素をすべての隣に追加しました。<li><ul>

ネストされhrefたものから属性を取り出して、(ネストされたメニューの最初の項目として) メニュー項目を作成しようとしています。<li><ul>Overview

例えば:

• Phones
    - Overview
    - Phone Types
    - Phone FAQs

メニューはPhones親の概要リンクで作成され、Overviewリンクは動的に作成されます。

これが私が現在持っているものです:

$('li.menu-item').each(function(index){
        if($(this).children('ul').length>0){
            var theHref = $(this).children('a').attr('href');
            var ulContent = $(this).children('ul').html();
            $(this).children('a').attr('href', '#');
            $(this).children('ul').html('<li><a href="'+theHref+'">Overview</a></li>'+ulContent);
            $(this).append('<div class="menu-ticker"><a class="ticker">></a></div>');
        }
    });

menu-ticker要素を参照してい>ます。

私のエラーは、(上記の例を使用して) Phone Types にもネストされたメニューがあることです。Overviewただし、リンクを追加すると、>サブサブ メニューには表示されません。Overviewコードがなくても問題なく動作します。

誰でも助けることができますか?

更新:
要求に応じて、ここに JSFiddle があります - http://jsfiddle.net/wGKQh/

4

1 に答える 1

0

さて、解決策は私を正面から見つめていました。なぜなら、私はhtmlを変数に取り込んでから、それを追加して再度追加したので、セレクターは私が変更したものをターゲットにしていませんでした。

これの代わりに、私はprependを使用しました。

$('li.menu-item').each(function(index){
        if($(this).children('ul').length>0){
            var theHref = $(this).children('a').attr('href');
            $(this).children('a').attr('href', '#');
            $(this).children('ul').prepend('<li><a href="'+theHref+'">Overview</a></li>');
            $(this).append('<div class="menu-ticker"><a class="ticker">></a></div>');
        }
    });
于 2012-10-18T09:52:09.543 に答える