jQuery:无法清空嵌套段落

Max*_*son 3 jquery html5

我想在div中清空段落.该段包含其他元素:div,text,images,span等.

<div id="div_id">test
    <p>
        text inside the paragraph
        <div id="text">hello hello hello</div>
        <img src="http://www.mygifto.com/upload/product/26922984_l.jpg" width="200" height="200" alt="Banner" />
    </p>
    hi
</div>
out of div
Run Code Online (Sandbox Code Playgroud)

最简单的解决方案应该是使用该empty()函数,但它根本不起作用,它只删除段落中的文本.

$('#div_id p').empty();
Run Code Online (Sandbox Code Playgroud)

我必须指定,div_id因为我p在页面中有其他人,他们不应该是空的.

在这里小提琴

我已经尝试过了

$('#div_id p').children('*').remove();
Run Code Online (Sandbox Code Playgroud)

但没有成功.如何删除段落中的所有元素?

Ror*_*san 9

问题是因为您的HTML无效.div内联中不能包含块级元素p.

将其更改#text div为a span,display: block它将起作用.

<p>
    <span id="text">hello hello hello</span>
    <img src="http://www.mygifto.com/upload/product/26922984_l.jpg" width="200" height="200" alt="Banner" />
</p>
Run Code Online (Sandbox Code Playgroud)
#text {
    border: 1px solid red;
    display: block;
}
Run Code Online (Sandbox Code Playgroud)

更新了小提琴