0

这就是我想要实现的目标。

我使用 JQuery 在>每个元素旁边添加<li>了一个嵌套<ul>的元素,以指示该元素具有嵌套菜单。

我正在尝试将href属性从<li>嵌套中取出<ul>并创建(作为嵌套菜单中的第一项)Overview菜单项。

例如:

• Phones
    - Overview
    - Phone Types
    - Phone FAQs

菜单是使用Phones父级上的 Overview 链接创建的,并且该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是指>元素。

我的错误是(使用上面的示例)电话类型也有一个嵌套菜单。但是,一旦我添加了Overview链接,>它就不会出现在子菜单上。没有Overview代码,它工作正常。

有人可以帮忙吗?

更新:
根据要求,这是一个 JSFiddle - http://jsfiddle.net/wGKQh/

4

1 回答 1

0

好的,解决方案正盯着我看,因为我将 html 撕掉到一个变量中,然后通过添加重新添加它,选择器没有针对我修改过的那个。

而不是这个,我使用了前置。

$('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 回答