Ho un elenco ordinabile nidificato che può avere elementi aggiunti o rimossi dinamicamente e può essere nidificato in livelli nidificati. Durante la nidificazione, un nuovo elemento ul viene iniettato in qualunque elemento li viene selezionato per essere il genitore. Lo stato iniziale della lista è qualcosa di simile al seguente:Selettore CSS per il targeting solo per bambini immediati e non per altri discendenti identici
<ul id="parent">
<li id="One"><a href="" class="listLink"><span class="position">1</span>One</a></li>
<li id="Two"><a href="" class="listLink"><span class="position">2</span>Two</a></li>
<li id="Three"><a href="" class="listLink"><span class="position">3</span>Three</a>
<ul>
<li id="A"><a href="" class="listLink"><span class="position">1</span>A</a></li>
<li id="B"><a href="" class="listLink"><span class="position">2</span>B</a></li>
<li id="C"><a href="" class="listLink"><span class="position">3</span>C</a></li>
<li id="D"><a href="" class="listLink"><span class="position">4</span>D</a></li>
<li id="E"><a href="" class="listLink"><span class="position">5</span>E</a></li>
<li id="F"><a href="" class="listLink"><span class="position">6</span>F</a></li>
</ul>
</li>
<li id="Four"><a href="" class="listLink"><span class="position">4</span>Four</a></li>
<li id="Five"><a href="" class="listLink"><span class="position">5</span>Five</a></li>
<li id="Six"><a href="" class="listLink"><span class="position">6</span>Six</a></li>
</ul>
sto usando MooTools per fare il genere, ecc, e funziona bene, ma sto avendo problemi nel reimpostare il testo della posizione correttamente sul tipo . Ogni selettore CSS che cerco di utilizzare include anche tutti gli dei bambini piuttosto che solo gli elementi li che appartengono all'elenco e non appartengono ai sottolisti. Supponiamo che, eccetto ID, posizione e testo, ogni elemento li in tutti gli elenchi sia identico a tutti gli altri. C'è un selezionatore per ottenere solo i bambini immediati? c'è un altro modo per fare ciò?
ho provato alcuni selettori bambino come quelli citati:
ul > li
selezionerà tutti gli elementi li che sono un figlio di un ul, non solo i figli immediati#parent > li
fa lo stesso come sopra .
Ecco la funzione che sto eseguendo correntemente quando un oggetto viene rilasciato, che non gestisce l'ordinamento, che funziona bene, semplicemente aggiornando la posizione. Si noti che è anche la sintassi MooTools:
var drop = function(el){
el.getParents('ul').reverse().each(function(item){
var posCount = 1;
item.getElements('li a span[class=position]').each(function(pos){
pos.set('text', posCount);
posCount++;
});
});
}
Attualmente, cambiando qualsiasi ordine elemento al livello principale sarà rinumerazione tutto 1-12, anche le sottoliste. La modifica di qualsiasi elemento in una sottolista fornisce i numeri corretti per quella lista, ma fa in modo che gli elenchi genitori contengano tutti gli elementi figlio li nella numerazione in modo errato.
mi sento come questo è un brutto hack, ma funziona:
var drop = function(){
var ulCount = 1;
$$('ul').each(function(item){
if(item.get('id') != 'parent') {
item.set('id', 'id-'+ulCount);
}
var elId = item.get('id');
var posCount = 1;
$(document).getElements('#'+elId+'>li>a>span[class=position]').each(function(pos){
pos.set('text', posCount);
posCount++;
});
ulCount++;
});
}
Grazie, ma MooTools gestisce il problema IE6, quindi non è proprio quello che sto cercando. Sto cercando un modo per reimpostare il testo degli span per indicare la posizione corretta per quell'elenco, ma non gli elenchi genitore o figlio, che è dove il problema sta arrivando. – VirtuosiMedia
#parent> li fa assolutamente solo i bambini immedati . Hai qualcos'altro in corso se questo non funziona. Ulteriori informazioni sono probabilmente richieste. – cletus
MooTools mi consente di utilizzare i selettori CSS3, ma poiché non sono stato in grado di modificare solo i bambini immediati, modifica in modo errato anche i numeri di tutte le mie sottoliste. – VirtuosiMedia