2010-10-21 25 views

Respuesta

21

Esto envolver un conjunto de imágenes con enlaces a ellos:

$('some selector for the images').each(function() { 
    $(this).wrap("<a href='" + this.src + "'/>"); 
}); 

... utiliza .each (link), .wrap (link), y el DOM nativa src (link) Propiedad de elementos de imagen.

Editar O como señala puntiagudo (pero no deliberadamente), sólo tiene que pasar una función en wrap:

$('some selector for the images').wrap(function() { 
    return "<a href='" + this.src + "'/>"; 
}); 

Live example

+4

También es posible usar '.wrap()' con una función como argumento; probablemente un lavado. – Pointy

+0

¡Gracias, funciona! – Simon

+0

@Pointy: * suspiro * ¿Cuándo lo aprenderé? Yo * sé * eso, y aun así sigo escribiendo 'cada '... Gracias. –

6
$('#img').each(function(){ 
    var $this = $(this); 
    $this.wrap('<a href="' + $this.attr('src') + '"></a>'); 
}); 
+1

'# img' debería ser' img'. No tiene sentido seleccionar un elemento que sea único y usar la función 'each'. : P – BrunoLM

+0

en realidad lo hace, ya que debe seleccionar el elemento. Podría haber hecho $ ('# img'). wrap ('); pero esto muestra un poco más de uso de jquery. punto válido, aunque^_^ – DoXicK

+2

no, Bruno tiene razón. estás llamando a cada uno en un elemento. debería ser $ ('img'). – EMMERICH

Cuestiones relacionadas