varios sibling selectores seleccionar por name español elementos ejemplos jquery

selectores - sibling jquery



Cómo usar jquery next() para seleccionar el siguiente div por clase (2)

¿Has probado: .parent () y .children ()? http://docs.jquery.com/Traversing

Soy bastante nuevo en jquery y estoy luchando con algo que debería ser bastante simple. Quiero seleccionar el div anterior y siguiente con la clase "MenuItem" del div con la clase "MenuItemSelected".

HTML

<div id="MenuContainer" class="MenuContainer"> <div id="MainMenu" class="MainMenu"> <div class="MenuItem"> <div class="MenuItemText">Menu Item #1</div> <div class="MenuItemImage">images/test1.jpg</div> </div> <div class="MenuDividerContainer"> <div class="MenuDivider"></div> </div> <div class="MenuItem MenuItemSelected"> <div class="MenuItemText">Menu Item #2</div> <div class="MenuItemImage">images/test2.jpg</div> </div> <div class="MenuDividerContainer"> <div class="MenuDivider"></div> </div> <div class="MenuItem"> <div class="MenuItemText">Menu Item #3</div> <div class="MenuItemImage">images/test3.jpg</div> </div> </div><!--/ .MainMenu --> </div><!--/ .MenuContainer -->

Aquí está el jquery para el siguiente que pensé que debería haber funcionado.

$(''div.MenuItemSelected'').next(''.MenuItem'');

Yo tambien lo intenté

$(''div.MenuItemSelected'').nextAll(''.MenuItem'');

Lo único que podría llegar a trabajar es

$(''div.MenuItemSelected'').next().next();

Eso parece absurdo, ¿alguna idea?


Has probado:

$(''div.MenuItemSelected'').nextAll(''.MenuItem:first'');

Creo que el problema al que te enfrentas es que a next devuelve al siguiente hermano, mientras que nextAll devuelve una colección de todos los hermanos posteriores que coinciden con tu selector. Aplicar el :first selector a su siguiente filtro nextAll debería hacer las cosas bien.

Me gustaría señalar que si la estructura de su marca es coherente (de modo que siempre se garantiza que funcione), entonces su solución actual podría ser (de manera comparativa, de referencia, de referencia) la forma más rápida:

$(''div.MenuItemSelected'').next().next();