2014-02-17 36 views
0

我有建这样的评论列表:如果父母格不包含具体span元素,然后将其隐藏

<article class="comment"> 
<span class="field"></span> 
</article> 

在我的网页一些<article class="comment">不包含 <span class="field"></span>,我需要显示只是那些有span元素的人。

我已经试过这样:jQuery('article.comment:not(:has(span.field)').hide();

试过这也:

if (jQuery('span.field').length) { 
jQuery('article.comment').show(); 
} 
else { jQuery('article.comment').hide(); } 

但是这是隐藏所有的article.comment的div,我想隐藏只是没有span元素的人。

欢迎任何建议。

谢谢!

回答

2

你缺少一个括号,在一个关闭:not

jQuery('article.comment:not(:has(span.field))').hide(); 

小提琴:http://jsfiddle.net/qdCjP/

+0

我喜欢这个比我的每个循环更好! –

+0

@JayBlanchard它更可读,但我认为它更慢。无论如何,我只是告诉OP为什么它不起作用。 –

0

尝试做这样的:

jQuery('article.comment').each(function() { 
    if(jQuery(this).find('.field').length) { 
     jQuery(this).show(); 
    } else { 
     jQuery(this).hide(); 
    }  
}); 
0

您可以通过物品需要循环和隐藏或显示每一个基于该领域的现有 -

jQuery('article.comment').each(function() { 
    if(jQuery(this).find('.field').length) { 
     jQuery(this).show(); 
    } else { 
     jQuery(this).hide(); 
    }  
}); 
0

遍历所有跨度并展示他们的父母。

jQuery('article').hide(); 
jQuery('article span.field').each(function(i, elem){ 
    $(elem).parent().show(); 
}); 
0

你可以试试这个:

jQuery(".comment").hide(); 
jQuery(".comment .field").parent().show(); 
相关问题