remove hasclass jquery

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))

jQuery.get()