除了一个之外,jQuery删除了div孩子们

时间:2012-04-13 14:43:28

标签: jquery

main元素外,如何删除ul内的所有内容?

<div id="main">
 <div id="a">
  <div id="b">
    <div id="c"></div>
    <div id="d"></div>
    <div id="e">
      <ul></ul>
    </div>
  </div>
 </div>
</div>

4 个答案:

答案 0 :(得分:7)

假设期望的结果是<div id="main"><ul></ul></div>,并且您希望保留所有<ul>(或者如果只有一个):

$( '#main' ).html( $( '#main ul' ) );​​​​​​​​​​​​​​​​​​​​

演示:http://jsfiddle.net/pEvNt/

执行$( '#main' ).not( 'ul' ).remove()是行不通的,因为它会删除ul的父母和ul(参见http://jsfiddle.net/h67Ge/)。

答案 1 :(得分:1)

尝试:

$('#main').children().not('ul').remove();

答案 2 :(得分:0)

可以做到这一点

  $('#main ul').detach().prependTo('#main').siblings().remove();

答案 3 :(得分:0)

$("ul", "#main").appendTo($("#main")).siblings().remove();

FIDDLE