Как установить src изображения с помощью href из родительского якоря?

0

У меня есть следующая ссылка, которая должна показывать изображение в ссылке при загрузке javascript:

<a href="http://upload.wikimedia.org/wikipedia/commons/a/ae/Mad_scientist.svg" id="a">
 <img alt="no image">
</a>

Предполагается, что javascript получит свойство href ссылки и включит его при написании html для изображения.

$('#a').html('<img src="' + $(this).attr('href') + '">image');

Так или иначе, $(this).attr('href') возвращает undefined. Что не так с этим?

JsFiddle

Теги:
image
href
this
src

2 ответа

4
Лучший ответ

DEMO

$('#a').html(function () {
   return  '<img src="' + $(this).attr('href') + '">image'
});

Функция, возвращающая содержимое HTML для установки. Получает индексную позицию элемента в наборе и старое значение HTML в качестве аргументов. jQuery освобождает элемент перед вызовом функции; используйте аргумент oldhtml для ссылки на предыдущий контент. Внутри функции это относится к текущему элементу в наборе.

Refrence

http://api.jquery.com/html/#html-functionindex--oldhtml

http://learn.jquery.com/javascript-101/this-keyword/

В вашем коде

$('#a').html('<img src="' + $(this).attr('href') + '">image');

$(this) не определен в вашем коде.

например.

$('#a').html(function () {
       return  '<img src="' + $(this).attr('href') + '">image'
});

В приведенном выше коде this относится к текущему элементу, т.е. к элементу с id="a"

  • 0
    Может кто-нибудь объяснить, почему это должно быть сделано таким образом?
  • 0
    @QuestionOverflow да, конечно, обновление ответа в мин.
Показать ещё 1 комментарий
1
var obj= $("#a");
obj.html('<img src="' + obj.attr('href') + '">image');
  • 0
    Может кто-нибудь объяснить, почему это должно быть сделано таким образом?
  • 0
    потому что здесь ничего не написано.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню