2016-04-28 10 views
0

Ich suche nach allen divs mit class = .task, die nicht durch eck-Direktiven ng-show/ng-hide verdeckt sind. Allerdings würde ich auch gerne überprüfen, ob das Elternteil nicht versteckt ist, aber ich kann nicht für das Leben von mir herausfinden, die richtigen Selektoren. Es gibt keinen Eltern-Selektor und .g-hide wird nicht von dem übernommen, was ich sagen kann.jQuery .not() um Eltern bestimmter Klassen auszuschließen

Dies ist, was ich für die Suche nach divs haben, die nicht versteckt sind:

var tasks = $('div:first').find('.task').not('.ng-hide'); 

Wenn es nicht möglich ist, denke ich, dass ich die ng-Show wiederholen kann auf die Kinder divs aber es scheint ein sauberer, wenn ich könnte behalte es nur auf dem Eltern-Div.

+1

können Sie auch HTML oder ein Schnipsel oder eine Demo teilen? – guradio

+1

wir müssen etwas HTML sehen, um Fehler beheben zu können – ochi

+1

Haben Sie den Pseudo-Check ': visible' ausprobiert? – ndimatteo

Antwort

0

Alles, was ich brauchte, war der: Sichtbare Selektor, weil Angulars ng-hide/ng-show funktionieren, indem man display: none auf das versteckte Element setzte, auf das: visible reagieren kann. Die Lösung ...

var tasks = $('div:first').find('.task:visible'); 

Kredit zu @ndimatteo. Wenn sie die Antwort posten, akzeptiere ich ihre.

2

Versuchen Sie mit :not Selektor wie folgt.

var tasks = $('div:first').find('.task:not(".ng-hide")'); 
0

Es gibt einen Selektor für die Eltern in JQuery, genannt parent().