Dieser Code-Schnipsel in einer Schleife alle <div id="wrap#">
und sie verstecken, wenn der Test versteckt sind.
$("div[id^='wrap']").each(function() {
var wrap = $(this);
if(wrap.children("div[class^='test']:visible").length == 0) {
wrap.hide();
} else {
wrap.show();
}
});
Wenn Sie noch Ihre <div id="wrap#">
sichtbar halten wollen, wenn es keinen Test überhaupt sind (wie in keiner im Markup), können Sie das folgende modifizierte Schnipsel verwenden:
$("div[id^='wrap']").each(function() {
var wrap = $(this);
if(wrap.children("div[class^='test']").length > 0 &&
wrap.children("div[class^='test']:visible").length == 0) {
wrap.hide();
} else {
wrap.show();
}
});
Es gibt keine zwingender Grund, Klassen zu nummerieren (außer in Randfällen). Ihre Nummerierung verkompliziert den obigen Code sowie Ihr CSS. Es wäre einfacher, einfach die Nummerierung von test
zu entfernen. (Sie brauchen es nicht, wie Sie immer eine Teilmenge von ihnen mit :lt(index)
auswählen können, :gt(index)
, :eq(index)
, :first
und :last
.
Wie für die Nummerierung ids, das ist in Ordnung, da jede ID muss eindeutig sein.
Kann jemand den Fragetitel redigieren? Ich suchte nach "allen Divs mit derselben Klasse," und übergab fast dieses oben. Upvoting Frage. – Jason