1

我是一个初学者程序员,我遇到了以下问题:如果我有一个嵌套的无序列表,我怎样才能只将元素复制到某个级别?例如,如果我想将此无序列表减少到前两个级别:

<ul>
  <li>A</li>
  <ul>
    <li>C<br>
    </li>
    <li>D<br>
    </li>
    <ul>
      <li>E<br>
      </li>
      <li>F<br>
      </li>
      <ul>
        <li>G<br>
        </li>
        <li>H<br>
        </li>
      </ul>
    </ul>
    <li>E<br>
    </li>
  </ul>
  <li>B</li>
</ul> 

<ul>
  <li>A</li>
  <ul>
    <li>C<br>
    </li>
    <li>D<br>
    </li>
    <li>E<br>
    </li>
  </ul>
  <li>B</li>
</ul>

有没有简单的方法来实现这一目标?

4

3 回答 3

1

这应该类似于$('ul ul ul').remove(),但您最好将其包含在例如带有 id 或 class 的 div 中,以便您可以进行本地清除$('div.twolvls ul ul ul').remove()

于 2012-04-06T16:40:48.360 回答
1

简单版:

$('ul ul ul').remove();

jsFiddle 演示

我还写了一个小函数,可以让你指定一个根元素和一个级别:

function reduce(root, selector, level) {
    var use = root;
    for (var i = 0; i <= level; i++) {
        use += ' ' + selector;
    }
    $(use).remove();
}

通过调用使用:

//if the lists are in an element with the id 'root', see Demo
reduce('#root', 'ul', 2);

​jsFiddle 演示

于 2012-04-06T16:41:07.530 回答
0

如果您只是删除 3 级无序列表,则可以使用$(ul ul ul).remove().

于 2012-04-06T16:41:09.037 回答