views:

25

answers:

1

I'm trying to make a script that would insert img element after each link to a certain site with source equal to value of href attribute of given link. This is what I came up with:

$("a[href*=site.com/img/]").after("<img src="+$(this).attr("href")+">");

Problem is, $(this) doesn't work (attr() returns undefined). Why is it? How to refer to selected link and its argument href?

+6  A: 

Expand it out manually with each(), eg:

$("a[href*=site.com/img/]").each (function () {
    $(this).after("<img src="+$(this).attr("href")+">");
});

You need to be in the right scope for $(this) to behave as you expect it to, jQuery needs some kind of context to set it.

S..
Thanks, I get it now.