【问题标题】:how can insert li by jqueryjquery如何插入li
【发布时间】:2012-08-18 19:10:27
【问题描述】:

在wordpress菜单中创建

<a href="#">menu 1</a>
<a href="#">menu 2</a>
<a href="#">menu 3</a>
<a href="#">menu 4</a>
<a href="#">menu 5</a>

但我想添加那些在 li 里面。像这样

<li><a href="#">menu 1</a></li>
<li><a href="#">menu 2</a></li>
<li><a href="#">menu 3</a></li>
<li><a href="#">menu 4</a></li>
<li><a href="#">menu 5</a></li>

我知道 jquery 是可能的。我试过了,但我做不到。我对 jquery 不是那么专业,所以你会帮我吗。

【问题讨论】:

    标签: jquery html-lists add


    【解决方案1】:

    我建议如下:

    var list = $('<ul />').insertBefore($('a').first());
    
    $('a').each(
        function(){
            $(this).wrap('<li />').closest('li').appendTo(list);
        });​
    

    JS Fiddle demo.

    根据我对 OP 的 cmets 的阅读(在此答案下方),上述无法正常工作的问题可能是由于缺少包装在 $(document).ready() 处理程序中的代码,如果是这种情况,那么我'会建议以下改编:

    $(document).ready(
        function(){
        var list = $('<ul />').insertBefore($('a').first());
    
        $('a').each(
            function(){
                $(this).wrap('<li />').closest('li').appendTo(list);
            });​
        });
    

    【讨论】:

  • 是的;您是否尝试过 edited 答案,就像目前一样?因为当我意识到wrap() 返回的是原始元素,而不是包装在方法中的元素时,我更改了代码。
  • 如果我使用 到 之前,则 li 不创建,如果用户在
  • 【解决方案2】:

    为要放入li元素的元素添加类:

    <a href="#" class="li_a">menu 1</a>
    <a href="#" class="li_a">menu 2</a>
    <a href="#" class="li_a">menu 3</a>
    <a href="#" class="li_a">menu 4</a>
    <a href="#" class="li_a">menu 5</a>
    

    然后抓取这些元素并遍历它们:

    var ul = $("<ul></ul>").appendTo("body");
    $("a.li_a").each(function() {
        $(this).wrap("<li></li>").parent().appendTo(ul);
    });
    

    【讨论】:

    • 它可以工作,但在我的 wordpress 中我不能在我的代码中添加任何类,就像这样
       <?php $menuParameters = array('menu' => 'New ', 'container' =&gt; false, 'container_class' =&gt; 'footmenu', 'echo' =&gt; false, 'items_wrap' =&gt; '%3$s', 'depth' =&gt; 0, ); echo strip_tags(wp_nav_menu( $menuParameters ), '<a>' ); ?&gt;</a>
    • @AccoreLTD - 嗯,只有当您只想对某些 a 元素执行此操作时才需要这样做。如果您需要对所有这些都执行此操作,您可以跳过添加类并将$("a.li_a") 更改为$("a")
    • @jeff.. 是的,它可以工作.. 但有一个问题。在我有很多 ul li 等.. 所以我只想做一个 div .. 比如说 div 类 flink。我只想在那里应用这个东西。现在在应用您的代码后,从正文中获取 并在 ul 上的 li 下获取
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签