2010-10-21 9 views

risposta

21

Ciò avvolgere una serie di immagini con link a loro:

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

... usa .each (link), .wrap (link), e il DOM nativo src (link) in elementi dell'immagine

Modifica O come sottolinea a punta (ma non volutamente), basta passare una funzione in wrap:

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

Live example

+4

È anche possibile usare semplicemente '.wrap()' con una funzione come argomento; probabilmente un lavaggio. – Pointy

+0

Grazie, funziona! – Simon

+0

@Pointy: * Sigh * Quando imparerò ?! Lo so * questo, eppure continuo a digitare 'each' ... Grazie. –

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

'# img' dovrebbe essere' img'. Non ha senso selezionare un elemento che sarà unico e utilizzare la funzione 'each'. : P – BrunoLM

+0

effettivamente lo fa, dal momento che è necessario selezionare l'elemento. avrei potuto fare $ ('# img'). wrap ('); ma questo mostra un po 'più di utilizzo di jQuery. punto valido però^_^ – DoXicK

+2

no, Bruno ha ragione. stai chiamando ciascuno su un elemento. dovrebbe essere $ ('img'). – EMMERICH

Problemi correlati