2012-11-19 29 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比較不起作用。不得不使用漫長的方式。 –