Javascript jQuery在img src属性中预先添加URL

Javascript jQuery在img src属性中预先添加URL,javascript,jquery,Javascript,Jquery,我只需要一个jQuery代码片段来在imgsrc中进行前置,即 <img src='/img/picture1.jpg' /> 因此,在片段jQuery之后,它变成 <img src='http://cdn.something.com/img/picture1.jpg' /> })) 但是,它被替换为src而不是pre它实际上与jQuery无关,无论如何,您可以使用.attr(): 这将影响所有的 无论如何,我不太确定这是个好主意。在触发DOMready事件时,浏览器

我只需要一个jQuery代码片段来在imgsrc中进行前置,即

<img src='/img/picture1.jpg' />
因此,在片段jQuery之后,它变成

<img src='http://cdn.something.com/img/picture1.jpg' />
}))


但是,它被替换为src而不是pre

它实际上与jQuery无关,无论如何,您可以使用
.attr()

这将影响所有的

无论如何,我不太确定这是个好主意。在触发
DOMready
事件时,浏览器可能已经尝试访问
old
源属性。如果必须在Javascript中执行此操作,那么最好将
路径信息
存储在自定义
数据属性
中,这样浏览器就不会试图加载图像。这可能看起来像:

HTML

这应该可以做到。您可以用
$(this.data('path')
替换
this.getAttribute()
,因为jQuery将这些
数据属性解析为它的“节点”数据散列。但这将创建另一个jQuery对象,这在此时是不必要的。

这应该可以:

$.ready(function() {
    $('img').each(function() {
        $(this).attr('src', cdn + $(this).attr('src'));
    });
});
但是,我不确定这是否是使用CDN的好解决方案,因为在调用脚本时,浏览器已经尝试从服务器加载图像


您应该在服务器端执行此操作。

根据您的具体问题,您可能可以使用标记来解决此问题,但我假设您只希望在图像上执行此操作,但在页面加载后更改src将使图像重新加载?如果图像在当前位置不存在,则需要在加载页面(服务器端)之前更改src属性。

是否应该
return'http://cdn.something.com“+src,因为img标签的src以/already@dbwebtek:不客气!如果你认为它是有用的和正确的,你可能会想接受一个答案。JANDY你能解释为什么浏览器不想加载图像吗?因为它看到了图像标记,为什么不尝试渲染它呢?是的,你是对的,在脚本等待DOM就绪时,浏览器会在脚本之前快速加载img…我可以在过渡时间看到FLASH…感谢评论Good Job Man:)
$().ready(function(){
     var cdn ='http://cdn.something.com';
   $('img').attrib('src', cdn);
$('img').attr('src', function(index, src) {
     return 'http://cdn.something.com' + src;
});
<img src='' data-path='/img/picture1.jpg' />
$(function() {
    $('img').attr('src', function(index, src) {
       return 'http://cdn.something.com' + this.getAttribute('data-path');
    });
});
$.ready(function() {
    $('img').each(function() {
        $(this).attr('src', cdn + $(this).attr('src'));
    });
});