2016-01-19 12 views
5

Come posso trovare l'ultimo elemento figlio usando css e qui è il mio codice.Identificazione dell'ultimo elemento

<div class="leftelement"></div> 
<div class="rightelement"></div> 
<div class="leftelement"></div> 
<div class="rightelement"></div> 
<div class="leftelement"></div> <!-- this element --> 
<div class="rightelement"></div> 

Ho provato il metodo seguente e non funziona per me. Nessuno mi può aiutare. Non voglio utilizzare nth-child perché a volte il conteggio di elemento può aumentare

.leftelement:last-of-type e .leftelement:last-child non funziona

+0

lo vuoi con CSS? – Siddharth

+0

Sfortunatamente con 'class' non è possibile tramite ** last-of-type **. – Manwal

+1

Its Possible @Manwal Si prega di dare un'occhiata – Tushar

risposta

-2

È possibile utilizzare il selettore fratello adiacente per realizzare qualcosa di simile, che potrebbe aiutare con CSS puro

div.rightelement + div:not(.rightelement){ 
 
color:green 
 
}
<div class="leftelement"></div> 
 
<div class="rightelement"></div> 
 
<div class="leftelement"></div> 
 
<div class="rightelement"></div> 
 
<div class="leftelement">tushar</div> <!-- this element --> 
 
<div class="rightelement"></div>

+0

https://jsfiddle.net/iamraviteja/xu0q4ayo/ non funziona qui – Raviteja

+0

Quindi perché non è stato possibile per te? – Tushar

+0

controlla il violino – Raviteja

-1

Se non si desidera utilizzare selettore CSS? Dovresti quindi modificare il tag.

È possibile utilizzare la funzione jQuery last().

.last()

Descrizione: Ridurre l'insieme di elementi corrispondenti a quella finale nel set.

$('.wow').last().css('color','blue');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="wow">wow 
 
</div> 
 
<div class="lol">EOOOW 
 
</div> 
 
<div class="wow">HEYY 
 
</div> 
 
<div class="lol">LOL 
 
</div>

+0

OP non ha menzionato 'jquery' o non tag aggiunto. – Manwal

+0

Ma lui ha detto che non vuole usare i CSS: "Non voglio usare nth-child". Ho capito che il suo html cambierà dinamicamente. Quindi non vuole hardcode un qualche selettore di CSS. (Come fece Tushar). Il che significa che l'unica soluzione sta usando JS. – Paran0a

+1

@ Paran0a: Quello che sento OP intendeva per * Non voglio usare nth-child * è che non volevano un selettore ': nth-child (5)' perché il no. di elementi potrebbe aumentare/diminuire. Ovviamente non intendevano * non voler usare CSS *. Altrimenti, non l'avrebbero etichettato con CSS. – Harry

-1
<div class="container"> 
    <div>1</div> 
    <div>2</div> 
    <div>3</div> 
    <div>4</div> 
    <div>5</div> 
    <div>6</div> 
</div> 

div:last-child { 
    color: red 
} 

questo è penna di codice de http://codepen.io/yeion7/pen/gPXvNN

+0

questo non è quello che ha chiesto, – Siddharth

-1

È possibile utilizzare :nth-last-of-type(n) per questo:

div:nth-last-of-type(2){ 
    color:red; 
} 

L'aumento del numero di di elementi non importa finché l'elemento che si desidera scegliere è quello prima dell'ultimo.

Nota: Ciò funzionerà se gli elementi sono sempre strutturati come uno .leftelement e uno .rightelement. Non è possibile selezionare l'ultimo .leftelement utilizzando solo CSS.

UPDATE: se il contenuto è dinamico e talvolta ha .leftelement come l'ultimo elemento e si ancora bisogno per selezionare questo elemento, si può fare questo:

div:nth-last-of-type(2):not(.rightelement), 
div:nth-last-of-type(2):not(.leftelement)+.leftelement{ 
    color:red; 
} 

dare un'occhiata a this pen.

+1

non funziona https://jsfiddle.net/iamraviteja/xu0q4ayo/1/ – Raviteja

+0

@Raviteja: A giudicare da come vengono denominate le classi, dubito fortemente che un ".elemento" sarebbe seguito da un altro '.rightelement'. Ma poi di nuovo, tutti i rispondenti avrebbero dovuto aspettare che OP indicasse chiaramente i requisiti. – Harry

+0

@Raviteja Ho aggiunto una nota sulla risposta, ma l'OP non dice che dovrebbe essere l'ultimo '.leftelement'. Il fatto che '.leftelement: last-of-type' sia provato come soluzione non significa che sia il requisito. –

-1

Penso che non sia possibile con CSS perché non abbiamo ancora la pseudo classe last-of-class, ecco un altro utente frustrato blog su di esso.

cosa è last-of-type e last-child lavoro sul nome element non sulla 'classe', tuttavia, è possibile scrivere le regole CSS come

div.parent div.lastElement:last-of-type{ 
    color:blue; 
} 

funzionerà tutto bene se div.leftElement è ultimo figlio element of its kind, working fine here.

se il tuo .lastElement è l'ultimo figlio di classname ma dopo un altro div, non funzionerà. like this

se si dispone di ".lastElement" su varie elements, tutte le forme di durata verranno applicate. like this

succo è che, abbiamo bisogno di pseudo classe CSS qualcosa di simile last-of-class ma non abbiamo ancora.

+0

Penso che questa sia la risposta corretta. – ketan

Problemi correlati