2012-03-28 18 views
0

Ich muss überprüfen, ob div contact-Bereich hat div media-Kontakt, wenn nicht dann den Kontaktbereich ausblenden, wie es einen farbigen Hintergrund hat, und ich will nicht habe einen leeren farbigen Hintergrund.Wie zu testen, ob ein Div enthält ein anderes div

Dies funktioniert nicht.bitte Hilfe.

$('.contact-area').each(function() { 
    var ContactAreaEmpty= $('.contact-area:not(:has(.media-contact)'); 
    ContactAreaEmpty.hide(); 

Antwort

-1

Dies ist genau das, was Sie gefragt haben. Der Fund gibt ein Array aller gefundenen Elemente zurück. Also wenn das Array leer ist, mediaContact aint da!

var mediaContact = $('.contact-area').find(".media-contact"); 

if (mediaContact.length <= 0) { 
    $('.contact-area').hide(); 
} 
+0

Gleiches Problem wie Samccones ursprüngliche Antwort - dies wird nur Elemente mit der Klasse 'contact-area' ausblenden, wenn keine ein untergeordnetes Element mit der Klasse' media-contact' haben. –

+0

@ Bryan Downing. Es ist wahr, es ist keine generische Antwort, es war ein schneller, um Anjanas Frage zu lösen, und es war ... – Zwik

+2

Die Annahme, dass nur ein Element auf der Seite mit der Klasse 'contact-area' existiert, ist kurzsichtig. Ich versuche nicht, hier ein Idiot zu sein, ich sage nur, dass Code, der geschrieben wurde, um ein Problem in einer Situation zu lösen, oft mehr Probleme verursacht, als er löst. Wenn das Element "# contact-area" anstelle von "contact-area" wäre, hätte diese Lösung ihren Wert. –

0
$('.contact-area').each( 
    function(i,t){ 
     !$('.media-contact', t).length && $(t).hide(); 
    } 
); 

http://jsperf.com/stackoverflow-test999 für all jene Geschwindigkeit Hasser da draußen

+0

Ein Liner ftl! : P lol – Zwik

+0

Dadurch werden alle Elemente mit der Klasse 'contact-area' ausgeblendet, wenn auch nur eine ohne Kindelement mit der Klasse' media-contact' gefunden wird. –

+0

falsch es wird nicht .. – samccone

-1
if($('.contact-area').children().length > 0) 
+0

Das würde nicht funktionieren, wenn es etwas anderes in der Div. – Zwik

+0

^^^ yup das ist falsch – samccone

2

Etwas wie folgt aus:

$('.contact-area').not(':has(.media-contact)').hide();​ 

DEMO

0
$('.contact-area').each(function(){ 
    if($(this).has('.media-contact').length == 0){ 
     $(this).hide(); 
    } 
}); 
Verwandte Themen