Foros del Web » Programando para Internet » Jquery »

[JQuery] Referenciar el sgte elemento con determinada clase

Estas en el tema de [JQuery] Referenciar el sgte elemento con determinada clase en el foro de Jquery en Foros del Web. Por ejemplo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original $ ( ".mi_link" ) . click ( function ( event ) { ... } Como puedo ...
  #1 (permalink)  
Antiguo 01/01/2013, 05:55
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 21 años, 1 mes
Puntos: 1
[JQuery] Referenciar el sgte elemento con determinada clase

Por ejemplo


Código Javascript:
Ver original
  1. $(".mi_link").click(function(event) {
  2. ...
  3. }


Como puedo referenciar el primer elemento desde ".mi_link" que tenga como clase: "mi_clase"?


Estaba probando con

Código Javascript:
Ver original
  1. $("div").next(".mi_clase")

...pero afecta a todos los divs con esa clase y no solo al primer inmediato

Gracias desde ya y feliz 2013

Última edición por Finseneu; 01/01/2013 a las 06:16
  #2 (permalink)  
Antiguo 01/01/2013, 08:17
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: [JQuery] Referenciar el sgte elemento con determinada clase

next() es el equivalent a nextsibling, pero sin ver tu html no se si se corresponde con el elemento que buscás. deberías utilizar
http://api.jquery.com/first/

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 01/01/2013, 08:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: [JQuery] Referenciar el sgte elemento con determinada clase

Hola

Código HTML:
Ver original
  1. <a href="#" class="mi_link">link</a>
  2. <div class="block">bloque 1</div>
  3.  
  4. <a href="#" class="mi_link">link</a>
  5. <div class="block">bloque 2</div>
  6.  
  7. <a href="#" class="mi_link">link</a>
  8. <div class="block">bloque 3</div>


Código Javascript:
Ver original
  1. (".block").first().slideToggle()


Con first el problema es que cualquiera de los 3 links que clickee siempre va a actuar sobre el bloque 1, y yo lo que quiero es que cada link afecte el bloque que le sigue.
  #4 (permalink)  
Antiguo 01/01/2013, 08:53
Avatar de ryugen
Colaborador
 
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Santa Fe
Mensajes: 350
Antigüedad: 16 años, 2 meses
Puntos: 187
Respuesta: [JQuery] Referenciar el sgte elemento con determinada clase

Deberías combinar ambos

Código Javascript:
Ver original
  1. $("mi_link").next(".block").first();

Sería algo como, buscar los proximos "block" y de ellos dame el primero
  #5 (permalink)  
Antiguo 01/01/2013, 09:36
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: [JQuery] Referenciar el sgte elemento con determinada clase

Viendo la estructura, en un principio pensé que la solución era la de @ryugen, pero no me funcionó. (un detalle, a la clase mi_link le falta el punto)

Lo pude resolver asi

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. $(document).ready(function(){
  10. $('a.mi_link').click(function(event){
  11. var f = this.className.split(' ')[1] ;
  12. //console.log(f);
  13. $("a."+f).next('div.' + f).text('xx');
  14. });
  15. });
  16.  
  17. //]]>
  18. </head>
  19. <a href="#" class="mi_link uno">link</a>
  20. <div class="block uno">bloque 1</div>
  21.  
  22. <a href="#" class="mi_link dos">link</a>
  23. <div class="block dos">bloque 2</div>
  24.  
  25. <a href="#" class="mi_link tres">link</a>
  26. <div class="block tres">bloque 3</div>
  27.  
  28. </body>
  29. </html>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 01/01/2013, 09:53
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: [JQuery] Referenciar el sgte elemento con determinada clase

Gracias ryugen


Código Javascript:
Ver original
  1. $("mi_link").next(".block").first().slideUp();

No hace nada

De esta forma...

Código Javascript:
Ver original
  1. $("div").next(".block").first().slideUp();

....si funciona, pero siempre opera sobre el primer bloque clickeando cualquiera de los 3 enlaces.
  #7 (permalink)  
Antiguo 01/01/2013, 09:55
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: [JQuery] Referenciar el sgte elemento con determinada clase

emprear, lo que busco es lograrlo sin tener que asignar clases unicas a cada link/bloque
  #8 (permalink)  
Antiguo 01/01/2013, 10:56
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: [JQuery] Referenciar el sgte elemento con determinada clase

Cita:
Iniciado por Finseneu Ver Mensaje
emprear, lo que busco es lograrlo sin tener que asignar clases unicas a cada link/bloque
Alguna forma de diferenciar los class de los links habría que tener. Se puede hacer buscando el indice de ese elemento dentro del array() de la clase, asi funciona:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>index() + next()</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. $(document).ready(function(){
  10. $('a.mi_link').click(function(event){
  11. var indice = $("a.mi_link").index(this);
  12. $($('a.mi_link')[indice]).next('.block').text('xx');
  13. });
  14. });
  15. //]]>
  16. </head>
  17. <a href="#" class="mi_link">link</a>
  18. <div class="block">bloque 1</div>
  19. <a href="#" class="mi_link">link</a>
  20. <div class="block">bloque 2</div>
  21. <a href="#" class="mi_link">link</a>
  22. <div class="block">bloque 3</div>
  23. </body>
  24. </html>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 01/01/2013, 18:04
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: [JQuery] Referenciar el sgte elemento con determinada clase

Muchas gracias, lo voy a probar.

Etiquetas: clase, elemento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:21.