查找和替换

时间:2010-01-22 15:44:50

标签: jquery replace find

我有一个表格,我使用jQuery加载函数进行屏幕抓取,该函数返回一个包含文本和图形的表格。我从中删除的网站使用相对路径的图像,所以当我将代码返回到我的页面时,图像没有显示出来。我一直在寻找一个jQuery函数来查找标记,并更新它以将报废的网站url添加到src属性中,但没有太多运气。

当前标记如下所示:

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

我需要做的是将http://www.somesite.com插入到src atttribute中,所以它看起来像这样:

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

有人能指出我需要做的正确功能吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

$("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>

答案 1 :(得分:0)

它以文本字符串的形式返回(尽管有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);
  }
);