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