2011-10-06 30 views
47

C'è un modo per verificare se esiste un elemento successivo? Controlla il mio codice:jQuery: Verifica se esiste l'elemento successivo

if($("#people .making-of .mask ul li.current").next("li") != null) { 
    alert("Exists"); 
} 
else { 
    alert("Dont exists"); 
} 

Cosa sto facendo male? Molte grazie!

risposta

116

Hai provato a guardare .next('li').length?

+0

era ! Grazie! –

+0

Nessun problema. Sono contento di poterti aiutare. – George

+0

Per qualche stupido motivo ho continuato a usare .length() – TheHamstring

2
if($("#people .making-of .mask ul li.current").next("li").length > 0) { 
    alert("Exists"); 
} 
else { 
    alert("Dont exists"); 
} 
20

Usa jQuery .is(), utilizzando .is() si può anche verificare quali tag, classe o ID successivo elemento hanno?

if($("#people .making-of .mask ul li.current").next().is('li')) { 
    alert("Exists"); 
} 
else { 
    alert("Dont exists"); 
} 
14

Il metodo più breve è proprio:

if($(...).next('li')[0]) { 

Poiché le funzioni jQuery restituiscono sempre un oggetto jQuery, non è mai uguale a null. Ma l'accesso a un oggetto jQuery come un array si comporta come se si stesse utilizzando una matrice di oggetti DOM, quindi [0] estrarrà il primo elemento DOM corrispondente o null. Anche il controllo .length() contro 0 funziona.

1

Come nel post precedente, è necessario controllare la lunghezza dell'articolo. Jquery.next() restituisce sempre un oggetto jQuery, ma se non v'è alcun elemento successivo, avrà una lunghezza di 0.

if($("#people .making-of .mask ul li.current").next("li").length > 0) { 
    alert("Exists"); 
} 
else { 
    alert("Dont exists"); 
} 
1

Utilizzare il metodo length in jQuery:

if($(...).next().length > 0) { 
    alert("Exists.") 
} else { 
    alert("Doesn't exist!") 
} 
+0

Questo non funziona, in 3.1.0, almeno. – Agamemnus

+0

(È necessario utilizzare la proprietà '' .length''.) – Agamemnus