jQuery: заменить строки на .each () - PullRequest
2 голосов
/ 22 апреля 2010

Мне нужна функция, которая заменяет каждый li изображением. Это мой код:

$(document).ready(function(){
    var tmphref;
    var tmpname;
    var str = '<a href="' + tmphref + '"><img src="http://www.somesite.com/a/' + tmpname[1] + '/avatar-small.jpg /></a>';
    $('#somediv li a').each(function(){
        tmphref = $(this).attr("href");
        tmpname = /http\:\/\/(\w+)\.somesite\.com\//.exec(tmphref);
        $(this).parent().replaceWith(str);
    });
});

Изображение находится по этому конкретному пути: www.somesite.com/a/username/avatar-small.jpg
Код выше не работает. Есть идеи?

Заранее спасибо.

1 Ответ

4 голосов
/ 22 апреля 2010

Перемещение

var str = '<a href="' + tmphref + '"><img src="http://www.somesite.com/a/' + tmpname[1] + '/avatar-small.jpg /></a>';

после tmphref и tmpname, например

$('#somediv li a').each(function(){
    tmphref = $(this).attr("href");
    tmpname = /http\:\/\/(\w+)\.somesite\.com\//.exec(tmphref);
    var str = '<a href="' + tmphref + '"><img src="http://www.somesite.com/a/' + tmpname[1] + '/avatar-small.jpg /></a>';
    $(this).parent().replaceWith(str);
});

, поскольку переменной str уже присвоены значения с undefined tmphreftmpname, поэтому изменение значений tmphref и tmpname после этого не повлияет на переменную str

И в этом случае вам не нужно объявлять переменную дляtmphref и tmpname вне функции .each.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...