2014-02-17 64 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(); 
相關問題