2010-10-21 6 views

ответ

21

Это завернуть набор изображений со ссылками на них:

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

... использует .each (link), .wrap (link), а родной DOM src свойство (link) для элементы изображения.

Редактировать Или, как Понтий указывает (но не демонстративно), просто передать функцию в wrap:

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

Live example

+4

Также возможно использовать '.wrap()' с функцией в качестве аргумента; вероятно, мыть. – Pointy

+0

Thanx, это работает! – Simon

+0

@Pointy: * Вздох * Когда я узнаю ?! Я * знаю * это, и все же я продолжаю печатать 'каждый' ... Спасибо. –

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

'# img' должен быть' img'. Не имеет смысла выбирать элемент, который будет уникальным, и использовать функцию 'each'. : P – BrunoLM

+0

На самом деле это так, так как вам нужно выбрать элемент. я мог бы сделать $ ('# img'). wrap ('); но это показывает немного больше использования jquery. правда, хотя^_^ – DoXicK

+2

нет, Бруно прав. вы вызываете каждый из одного элемента. он должен быть $ ('img'). – EMMERICH