删除图像src前缀

时间:2010-04-28 13:42:01

标签: jquery

我在页面上有一堆图像,这些图像包含在一个div中,内容块类似于:

<div class="content-block">
    <img src="../images/path/path/image.jpg" alt="blah" title="blah" />
    <img src="../images/path/path/image.jpg" alt="blah" title="blah" />
    <img src="../images/path/path/image.jpg" alt="blah" title="blah" />
    <img src="../images/path/path/image.jpg" alt="blah" title="blah" />
    <img src="../images/path/path/image.jpg" alt="blah" title="blah" />
</div>

我通过ajax将这个html加载到div中。当我加载它时,我需要删除图像路径之前的“../”,加载后,所以路径保持正确。这可以用jQuery完成吗?非常感谢提前。

我在HTML中加载的jQuery代码:

$(document).ready(function() {
$('.projects a').click(function(event) {
    $('#work').load(this.href + ' #loadwork');
    event.preventDefault();
});

});

修改

$(document).ready(function() {
$('.projects a').click(function(event) {
    $('#work').load(this.href + ' #loadwork', function(){
           $('.content-block>img').each(function(){
           $(this).attr('src',$(this).attr('src').replace('../',''));
        });
    });
    event.preventDefault();
});

});

4 个答案:

答案 0 :(得分:3)

$('.content-block>img').each(function(){
  $(this).attr('src',$(this).attr('src').replace('../',''));
});

这应该可以解决问题。

- 编辑 -

根据您的代码,尝试这样:

$(document).ready(function() {
  $('.projects a').click(function(event) {
    $('#work').load(this.href + ' #loadwork',function(response){
      $(response).find('div>img').each(function(){
        $(this).attr('src',$(this).attr('src').replace('../',''));
        // Output the response to the DOM
      });
    });
    event.preventDefault();
  });
});

我认为这应该有用......你可能需要使用find选择器。

答案 1 :(得分:1)

您可能希望在load方法的回调中执行replace,以便它只在加载图像后执行。这样的事情(使用布兰特的替换代码):

$('#work').load(this.href + ' #loadwork', function()
{
   $('.content-block>img').each(function(){
   $(this).attr('src',$(this).attr('src').replace('../',''));
});
}));

答案 2 :(得分:0)

试试这个(未经测试):

$('.content-block img').each(function() {
        var path = $(this).attr('src');
        path = path.substr(3);
        $(this).attr('src', path);
    }
);

答案 3 :(得分:0)

或者,或者,通过服务器端方法生成HTML,该方法计算相对于应用程序根目录的URL(“/appName/images/path/path/image.jpg”),然后您可以加载标记进入任何页面而不必担心它是否会起作用。 这可以防止您必须在客户端处理html片段,使您的页面更清洁。