Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/04/2012, 09:34
Avatar de Naahuel
Naahuel
 
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 8 meses
Puntos: 192
Respuesta: Acceder a un div desde Jquery

1.-
Cita:
The id attribute specifies a unique id for an HTML element (the value must be unique within the HTML document).
http://www.w3schools.com/tags/att_standard_id.asp

Básicamente, el atributo ID es único en el documento.

Cita:
Es decir, si doy click en articulo2.jpg me manda el titulo y descripcion de el articulo1.
Eso es esperable y lógico.

Con esto dicho, vamos a sacar los id's y usar clases:

Código HTML:
Ver original
  1. <div class="contenedor">
  2.     <a href="#"><img class="wmodal" src="imagenes/articulo1.jpg"></a>
  3.     <p class="titulo" >Nombre del articulo 1</p>
  4.     <div class="descripcion" style="display: none;">
  5.           Descripcion del articulo 1.
  6.     </div>
  7. </div>
  8.  
  9. <div class="contenedor">
  10.     <a href="#"><img class="wmodal" src="imagenes/articulo2.jpg"></a>
  11.     <p class="titulo" >Nombre del articulo 2</p>
  12.     <div class="descripcion" style="display: none;">
  13.           Descripcion del articulo 2.
  14.     </div>
  15. </div>

2.- Tu script busca el mismo elemento todo el tiempo por estar usando ID's. Es lógico que encuentre sólo el primero.
Cambiamos los Id's por clases y cambiamos los selectores y las variables para optimizar un poco el script:

Código Javascript:
Ver original
  1. jQuery(function ($) {
  2.     $('.contenedor a').click(function (e) {
  3.     //guardamos el elemento <a> al que se le hizo click
  4.     var $elem = $(this);
  5.     //el contenedor general es padre del <a> al que se hizo click
  6.     var $cont = $elem.parent();
  7.    
  8.     //obtenemos los datos de cada elemento dentro del contenedor actual
  9.     var titulo       = $cont.find('.titulo').html();
  10.     var descripcion  = $cont.find('.descripcion').html();
  11.    
  12.     //abrimos el cuadro modal
  13.     $.modal("<div><h1>" + titulo + "</h1>" + descripcion + "</div>");
  14.    
  15.     //evitamos accion por defecto del <a>
  16.     e.preventDefault()
  17.     });
  18. });


Estudiá los comentarios y fijate bien cómo funciona.
__________________
nahueljose.com.ar