2011-07-08 207 views
0

我正在處理標記功能,並且標記(span class =「tag」)的包裹元素顯示爲沒有內容。我需要隱藏空白的內容並顯示標籤。問題是我的邏輯影響到所有的標籤,而不僅僅是空的標籤。我怎樣才能瞄準空標籤?jQuery只隱藏空元素

$(".tag:empty").hide(); 
     $('.tag_btn').live('click', function() { 
      if (!$('.tag:empty')){ 
       $('.tag').show(); 
      } 
     }); 
+0

如何隱藏'.tag_btn'這是空的旁邊? '$(「。tag:empty」)。sibling('。tag_btn')。hide();' – Eric

回答

1

編輯:好了,所以當你點擊.tag_btn,要顯示所有的非空.tag S'試試這個:

$('.tag_btn').live('click', function() 
{ 
    $('.tag:not(:empty)').show(); 
}); 
+0

+1你的回答比我的好。很好的看到$('。tag:empty')是一個選擇符而不是布爾值... –

+0

tag_btn是生成標籤的按鈕的選擇器。 – geraddavis

+0

謝謝。我不知道你可以應用seudo-class:而不是jQuery。單擊'.tag_btn'後,我仍然有一個新標籤仍然隱藏。直到第二個標籤被創建,兩個非空標籤才被顯示出來。我認爲現場活動會抓住這一點。好吧.. – geraddavis

0

我不確定會發生什麼事情,但這種替代方式的工作?

$('.tag').each(function(){ 
    var tag = $(this); 
    if ($.trim(tag.text() != "")) 
    { 
     tag.show(); 
    } 
});