2

如果 p 标签为空,我希望能够删除 ap 标签的父 div。我已经给出了 p 和 id 并使用了这行代码。

$('#contentempty:empty').parent().remove();

我已经阅读了很多文档,这看起来应该是正确的,但是当我 jsfiddle 它http://jsfiddle.net/timwilks13/78uQm/它不起作用。有谁知道我错过了什么?!谢谢

4

3 回答 3

5

您不能在同一页面上多次使用相同的 id,请改用类:

<div>
  <p class="contentempty">
    Hello
  </p>
</div>
<div>
  <p class="contentempty">
  </p>
</div>

和 JavaScript:(使用单个选择器.contentempty然后与jQuery.fn.filter链接更快)

$('.contentempty').filter(":empty").parent().remove();

您可以使用 [jQuery.fn.map][2] 自己检查是否为空,然后检查 DOM 节点的 innerHTML 的修剪版本是否等于空字符串""

$(".contentempty").map(function() {
     return !$.trim(this.innerHTML);
}).parent().remove();
于 2013-01-18T14:48:08.533 回答
2
  1. 使用类而不是 ID(ID 必须是唯一的)
  2. 如果有空格,则段落不为空。

http://jsfiddle.net/UNZTV/

<div>
  <p class="contentempty">
    Hello
  </p>
</div>
<div>
  <p class="contentempty"></p>
</div>

JS:

$('.contentempty:empty').parent().remove();
于 2013-01-18T14:51:16.853 回答
1

虽然 @NULL 可能对 id 是正确的,但它只能在<p>实际为空的情况下工作:

http://jsfiddle.net/sBPCB/

<div>
  <p id="contentempty">
    Hello
  </p>
</div>
<div>
  <p id="contentempty"></p>
</div>
于 2013-01-18T14:50:58.740 回答