Найти и заменить - PullRequest
       18

Найти и заменить

0 голосов
/ 22 января 2010

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

Текущий тег выглядит так:

<img style="border:thin solid black; margin-top:5-x;" src="/images/picture.jpg">

Что мне нужно сделать, это вставить http://www.somesite.com в атрибут src, чтобы он выглядел так:

<img style="border:thin solid black; margin-top:5-x;" src="http://www.somesite.com/images/picture.jpg">

Может кто-нибудь указать мне правильную функцию, мне нужно сделать это?

Спасибо!

Ответы [ 2 ]

1 голос
/ 22 января 2010
$("table img").each(function(){
  $(this).attr("src", "http://www.somesite.com" + $(this).attr("src"));
});

<script src="path_to_jquery.js"></script> 
<script>
    $(document).ready(function(){
        $("#table").load("target_website table:nth-child(3)", function(){
            // info: actually I'm not sure if this inside this function will be #table
            // you look for each image in #table...
            $(this).find("img").each(function(){
                // ...and do things with src attribute of each image
                $(this).attr("src", "http://www.somesite.com" + $(this).attr("src"));
            });
        });
    });
</script>
<div id="table"></div>
0 голосов
/ 22 января 2010

Возвращается как текстовая строка справа (хотя и с тегами html). Так что вы можете просто манипулировать текстом напрямую:

data = data.replace(/<img(.*?)src="/ig,'<img$1src="http://somesite.com')

РЕДАКТИРОВАТЬ: Извините, только что понял нагрузка помещает контент прямо туда. Если нет веских причин для этого, не используйте нагрузку. Вместо этого используйте $ .get, а затем вставьте текст.

Так что вместо:

$("el").load(url);

Использование:

$.get(url, function (data) {
    data = data.replace(/<img(.*?)src="/ig,'<img$1src="http://somesite.com');
    $("el").html(data);
  }
);
...