Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Обертывание картинки ссылкой. Как получить href? (https://javascript.ru/forum/jquery/18928-obertyvanie-kartinki-ssylkojj-kak-poluchit-href.html)

Dudo4nick 20.07.2011 16:54

Обертывание картинки ссылкой. Как получить href?
 
Здравствуйте!

Понадобилось обернуть все картинки в блоке ссылкой. Ссылка должна вести на саму картинку, т.е. на полноразмерный вариант. Обернуть получилось, но не получается с href, он остается undefined. Помогите, пожалуйста!

<script>
jQuery(document).ready(function(){
    $('div#content img').wrap('<a href="' + $(this).attr('src') + '" title="' +$(this).attr('alt')+ '"></a>');
	    });
</script>

kobezzza 20.07.2011 17:02

Цитата:

Сообщение от Dudo4nick (Сообщение 114438)
Здравствуйте!

Понадобилось обернуть все картинки в блоке ссылкой. Ссылка должна вести на саму картинку, т.е. на полноразмерный вариант. Обернуть получилось, но не получается с href, он остается undefined. Помогите, пожалуйста!

<script>
jQuery(document).ready(function(){
    $('div#content img').wrap('<a href="' + $(this).attr('src') + '" title="' +$(this).attr('alt')+ '"></a>');
	    });
</script>

У вас $(this) относится к document.

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


ЗЫ: я заменил jQuery(document).ready(function(){ на более короткую запись $(function(){ , мне так больше нря)
ЗЫЗЫ: лучше так не писать "div#content", тем более ИД и в Африке ИД - он один на страницу.

ваый 20.07.2011 17:05

а можно еще проще и круче:
$(function() {
    $('#content img').wrap(function() {
        return '<a href="' + $(this).attr('src') + '" title="' +$(this).attr('alt')+ '"></a>';
    });
});

kobezzza 20.07.2011 17:06

Цитата:

Сообщение от ваый (Сообщение 114443)
а можно еще проще и круче:
$(function() {
    $('#content img').wrap(function() {
        return '<a href="' + $(this).attr('src') + '" title="' +$(this).attr('alt')+ '"></a>';
    });
});

Хм, не знал, что можно функцию callback с wrap юзать, буду знать)

snp1987 22.09.2012 12:52

можно не писать $(this).attr('src') а написать this.src

snp1987 22.09.2012 13:01

$(function()
{
$("img").wrap(function(){
return '<a href="'+ this.src +'"></a>';
})
})


Часовой пояс GMT +3, время: 11:00.