jQuery, как заменить URL-адрес src

У меня есть страница, которую я экранировал, очищенная страница использовала относительный путь для своих изображений, и когда я загружаю свою страницу, URL-адрес моего сайта вставляется в атрибут src. Мне нужно найти способ заменить мой URL-адрес URL-адресом удаленного сайта, чтобы изображения и другие элементы, которые ссылаются на него, правильно отображались на моей странице.

Сценарий, который я использую для очистки:

<script src="path_to_jquery.js"></script>
<script>
$document.ready(function() {
 $("#weather").load("http://weather.com" table:nth-child(3)", function() {
  $(this).find("img").each(function() {
   $(this).attr("src").replace('http://my_site.com', 'http://weather.com");
  });
 });
});

I have added the last line with .replace hoping to clean up the problem but so far it is not working. I need to keep the file path so when I replace my url with the target url the rest of the src attr needs to stay there. For example when the page is opened I see the table and all the text fine, but the images fail to load since the do not reside on my server. So I need to update the src attr from this:

http://my_site.com/images/sunny.jpg

к этому:

http://weather.com/images/sunny.jpg

Любое понимание будет оценено.


person Jason    schedule 24.01.2010    source источник
comment
Как вы получаете HTML через домены?   -  person SLaks    schedule 24.01.2010


Ответы (2)


Вызов replace возвращает новую строку, содержащую замены. Ваш код создает новую строку, которая говорит my_site.com вместо weather.com, но ничего не делает со строкой.

Вам нужно написать следующее:

$(this).attr("src", function(index, old) {
    return old.replace('http://my_site.com', 'http://weather.com");
});
person SLaks    schedule 24.01.2010
comment
Я думаю, что это скорее function(index, old). - person Gumbo; 24.01.2010
comment
Похоже, что URL-адрес не меняется, таблица все еще загружается, но путь все еще не обновляется. - person Jason; 25.01.2010
comment
Тогда доменная часть, вероятно, другая. Добавьте alert(old) и проверьте, что там написано. - person SLaks; 25.01.2010
comment
Я только что обновился до 1.4, но все еще не люблю, и предупреждение больше не появляется. - person Jason; 25.01.2010
comment
Я отсталый! это работает, я слишком долго смотрел на эту штуку и не понял, что поставил https вместо http! Спасибо! - person Jason; 25.01.2010

У вас опечатка в 'http://weather.com"

$document.ready(function() {
 $("#weather").load("http://weather.com" table:nth-child(3)", function() {
  $(this).find("img").each(function() {
    var old_site= $(this).attr("src");
    var new_site= old_site.replace("http://my_site.com", "http://weather.com");
    $(this).attr("src",new_site);
  });
 });
});
person wharsojo    schedule 28.01.2010