2012-11-19 30 views
0

我有一些生成的输出是这样的:删除父的家长或特定的标签

<figure> 
    <a href="location.php"><img src=""></a> 
</figure> 

,我申请当这个JS:

$(funciton() { 
    $('img').each(function(){ 
     if($(this).attr('src') == null || $(this).attr('src') == '') 
      { 
       $(this).parent().remove(); 
      } 
}); 

它消除了img标签,并且它的父标签,但在页面上留下此输出:

<figure> 
"&#8203"   ​ 
</figure> 

如何删除父母的父标记或仅修剪它,以便没有空白权限你有礼物吗?当数字标签中有任何东西时,它有一个1px的高度和来自css的边距。我可以改变CSS,但想知道这一点,非常感谢帮助!

回答

1

如果你想确保父<figure>标签是空的,如果图像标签没有.src,你可以这样做:

$(function() { 
    $('img').each(function() { 
     if(!this.src) { 
      $(this).closest("figure").empty(); 
     } 
    } 
}); 

.empty()删除所有的childNodes和元素的任何文本。

请注意,我还简化了您对.src的比较。首先,不需要在这里使用jQuery,而且第二次,单个测试可以检查任何空值。

如果您确实希望<figure>标签在页面上不占用空间,那么您也可以仅对其执行.hide()

+0

太棒了,.closest是我所需要的。我使用.remove()而不是empty(),尽管它们在一定程度上都起作用。 –

+0

另外,简化.src比较不起作用。不得不使用漫长的方式。 –