Questo frammento di codice in loop tutto <div id="wrap#">
e nasconderle se il test sono nascosti.
$("div[id^='wrap']").each(function() {
var wrap = $(this);
if(wrap.children("div[class^='test']:visible").length == 0) {
wrap.hide();
} else {
wrap.show();
}
});
Se si vuole ancora mantenere la vostra <div id="wrap#">
visibile se non ci sono nessun test a tutti (come in nessuno nel codice), è possibile utilizzare il seguente frammento modificato:
$("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();
}
});
Non c'è motivo convincente per classificare le classi (tranne che nei casi limite). La tua numerazione complica il codice di cui sopra così come il tuo CSS. Sarebbe più semplice rimuovere la numerazione da test
. (Non è necessario come si può sempre selezionare un sottoinsieme di loro utilizzando :lt(index)
, :gt(index)
, :eq(index)
, :first
e :last
.
Per quanto riguarda gli ID di numerazione, va bene dal momento che ogni id deve essere unico.
fonte
2009-08-03 15:10:47
Qualcuno può modificare il titolo della domanda? Stavo cercando "tutti i div con la stessa classe" e ho quasi superato questo problema di upvoting – Jason