如何删除所有子节点,但保留实际数据?

时间:2011-03-21 19:45:22

标签: javascript jquery css

jQuery中是否有一种方法可以删除所有子节点,但是将文本保留在节点中?

如:

<div>
    Hello
    <span>World</span>
</div>

结果将是:

<div>
    Hello
</div>

3 个答案:

答案 0 :(得分:7)

假设你真的想要:

<div>Hello World</div>

结果:

var node = $('#yourDiv');
node.text(node.text());

答案 1 :(得分:5)

试试这个:

$('div').children().remove()

答案 2 :(得分:0)

这是一个简单的插件,可以递归地为您执行此操作(如果您有多个子级深度):

$.fn.extend({ 
    stripChildren : function() {
       $(this).children().each(function() { 
          if ($(this).children().size() > 0)
            $(this).stripChildren();
          else
            $(this).replaceWith($(this).html());
            $(this).parent().stripChildren();
       }); 
    }
});

使用它很简单:

$(document).ready(function() {
    $('div').stripChildren();
});