如果<p>标记返回空</p>,则删除父div

时间:2013-01-18 14:45:33

标签: jquery html css

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

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

我已阅读了大量文档,看起来它应该是正确的,但是当我发现它http://jsfiddle.net/timwilks13/78uQm/时它不起作用。谁知道我错过了什么?!感谢

3 个答案:

答案 0 :(得分: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();

答案 1 :(得分:2)

  1. 使用类而不是ID(ID必须唯一)
  2. 如果有空格,则段落不为空。
  3. http://jsfiddle.net/UNZTV/

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

    JS:

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

答案 2 :(得分:1)

虽然@NULL对于id是正确的,但它只能在<p>实际为空时才有效:

http://jsfiddle.net/sBpCB/

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