hasclass - ¿Cómo comprobar la igualdad de DOM con jQuery?
jquery remove class (2)
Básicamente estoy creando una lista simple, y uno de los elementos de la lista está seleccionado. Estoy logrando esto al tener una clase "seleccionada" aplicada a cualquier elemento que quiera seleccionar. Tengo dos botones que van hacia adelante y hacia atrás que atraviesan esta lista. Sin embargo, cuando el usuario llega al primer o al último elemento de la lista, quiero volver a publicar. Aquí es donde estoy atascado, porque tengo problemas para identificar que el elemento seleccionado actualmente no es el primero ni el último.
Ejemplo simple:
<div id="list">
<p>item 1</p>
<p>item 2</p>
<p class="selected">item 3</p>
</div>
Digamos que el usuario presiona el siguiente botón, en este punto estoy buscando algo similar a esto:
if (jQuery(''#list p.selected'') == jQuery(''#list p:last-child''))
//do post back
Sin embargo, esta lógica está volviendo falsa, lo que me lleva a creer que me estoy acercando a esto de manera incorrecta.
¿Cuál es la mejor manera de verificar este tipo de lógica con jQuery?
Aunque puede comparar objetos jquery como Matt ha mostrado, o simplemente con el operador de índice
if($("#list p.selected")[0] == $("#list p:last-child")[0])...
esto rara vez es necesario con jQuery. ¡Hay una mejor manera!
if($("#list p.selected").is(":last-child"))....
O al revés, más legible.
if($("#list p:last-child").is(".selected"))....
jQuery es un objeto, por lo que técnicamente estás comparando dos objetos diferentes (pero similares), que siempre serán falsos.
Tratar:
if (jQuery(''#list p.selected'').get(0) == jQuery(''#list p:last-child'').get(0))