【问题标题】:How to wrap an <ul> in another <ul>?如何将 <ul> 包装在另一个 <ul> 中?
【发布时间】:2011-05-21 07:48:22
【问题描述】:

我有一个无序列表,我想用 jQuery 将它包装在另一个无序列表中,使用以下代码:

$('ul.innerlist').prepend('<ul><li>');
$('ul.innerlist').append('</li></ul>');

然而,不是第一行创建开始标签,第二行创建结束标签(并包装.innerlist),第一行似乎同时创建了打开和关闭标签,导致了这个

<ul>
  <li></li>
</ul>
<ul class="innerlist">
  <li></li>
</ul>

而不是这个:

<ul>
  <li>
    <ul class="innerlist">
      <li></li>
    </ul>
  </li>
</ul>

【问题讨论】:

    标签: javascript jquery append html-lists prepend


    【解决方案1】:

    这使用jQuery's wrap() method 将所选元素与您提供的元素包装在一起。

    示例: http://jsfiddle.net/patrick_dw/bD8LQ/

    $('ul.innerlist').wrap('<ul><li></li></ul>');
    

    【讨论】:

    • +1 表示 ul 不是另一个 ul 的有效子代。
    • 在我使用它(家谱)的意义上,嵌套列表是有意义的,因为家庭 (ul) 中的每个孩子 (li) 都可以拥有自己的家庭
    • 谢谢,与往常一样,实际答案通常非常简单!
    【解决方案2】:

    【讨论】:

    • 虽然这是一个可以提供的有效资源,但它并没有真正回答这个问题......虽然,我知道,'给一个人一条鱼,喂他一天;授人以渔,养其一生……”
    • 我认为我的回答是一个“想法”。
    【解决方案3】:

    尝试以下方法:

    $('ul.innerlist').each(function(i,v){v=$('<ul><li></li></ul>').append(v);});
    

    wrap 函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多