2010-10-21 3 views

Répondre

21

Cela enveloppez un ensemble d'images avec des liens vers les:

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

... utilise .each (link), .wrap (link) et les DOM natif src (link) Biens éléments d'image.

Modifier Ou comme Pointy indique (mais pas ostensiblement), il suffit de passer une fonction dans wrap:

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

Live example

+4

Il est aussi possible d'utiliser '.wrap()' avec une fonction comme argument; probablement un lavage. – Pointy

+0

Thanx, ça marche! – Simon

+0

@Pointy: * Soupir * Quand vais-je apprendre ?! Je * sais * ça, et pourtant je continue à taper 'each' ... Merci. –

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

'# img' devrait être' img'. Cela n'a pas de sens de sélectionner un élément qui sera unique et d'utiliser la fonction 'each'. : P – BrunoLM

+0

en fait, car vous devez sélectionner l'élément. j'aurais pu faire $ ('# img'). wrap ('); mais cela montre un peu plus d'utilisations de jquery. point valide si^_^ – DoXicK

+2

non, Bruno a raison. vous appelez chacun sur un élément. ça devrait être $ ('img'). – EMMERICH