2011-07-08 199 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(); 
    } 
});