我有一个表格,我使用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">
有人能指出我需要做的正确功能吗?
谢谢!
答案 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);
}
);