Javascript 在不加载图像的情况下获取图像src?

Javascript 在不加载图像的情况下获取图像src?,javascript,jquery,html,image,Javascript,Jquery,Html,Image,我有一个通过ajax返回的html片段。代码段是一个属性,不会导致浏览器加载图像?您最好的选择可能是在图像上输出一个数据标记。然后,您可以使用jQuery操作它,然后使用它来编写最终的图像路径 因此,您可以在HTML中执行以下操作: var src = $(value).attr('src'); 编辑:对不起,我刚刚通过AJAX重读了这一部分。在这种情况下,您可能可以使用ajax请求的数据回调从图像中删除src。我通过在将src属性加载到jquery之前更改其名称来解决这个问题 var pat

我有一个通过ajax返回的html片段。代码段是一个
属性,不会导致浏览器加载图像?

您最好的选择可能是在图像上输出一个数据标记。然后,您可以使用jQuery操作它,然后使用它来编写最终的图像路径

因此,您可以在HTML中执行以下操作:

var src = $(value).attr('src');

编辑:对不起,我刚刚通过AJAX重读了这一部分。在这种情况下,您可能可以使用ajax请求的数据回调从图像中删除src。

我通过在将src属性加载到jquery之前更改其名称来解决这个问题

var path = $('.my-image').data('img-src');
console.log(path); // Do something here, then write the new path with:
$('.my-image).attr('src', new_path);

这样做可以在不引起浏览器尝试加载图像的情况下提取值。

如果您只有字符串,比如
为什么不使用正则表达式

类似于:
/[\“\'][a-z0-9A-Z\.]*/
。 PS:我的正则表达式技能很差,所以你可以相应地操作它。

使用

 value = value.replace('src', 'data-src');
 var src = $(value).attr('data-src');
var字符串=“”;
var matches=string.match(/src\=(“|”)(.*?\1/);
console.log(匹配[2]);

访问属性后,您只需删除该属性即可

这将不会加载无效映像,您可以在控制台中确认:

var s=$(''),
src=s.attr('src');
s、 removeAttr('src');
console.log(src)

如果您不想加载图像,为什么还要制作img元素?只需在脚本中创建一个带值的字符串。使服务器返回
。然后,使用jQuery,获取
数据src
,对其进行操作,并将其作为
src
放回。我无法控制服务器端-我只是在ajax请求中获取一个任意img标记片段。如果显示ajax功能。在将其输出到htmlIf之前,您应该在ajax的
success
done
部分对其进行操作。如果您不想加载图像,则需要将ajax调用的返回解析为字符串,并使用regex或其他方法提取
src
。这是我的第一个想法,但是我无法控制服务器来控制属性名称。我想我可以在将属性名称加载到jquery之前替换属性名称的字符串……如果您能够在图像上使用
.attr()
,那么图像至少没有开始加载,我会感到惊讶。这意味着它创建了一个
图像
对象,并在其上设置了
.src
属性。对,这就是导致初始加载尝试的原因。通过替换属性名,元素不再具有src属性,因此它不再尝试加载image.interest。这很有帮助。谢谢
var path = $('.my-image').data('img-src');
console.log(path); // Do something here, then write the new path with:
$('.my-image).attr('src', new_path);
 value = value.replace('src', 'data-src');
 var src = $(value).attr('data-src');
$.ajax('someURL.html', function(data){
    var html = data.replace(/\ssrc/g, ' data-src'),
        img  = $(html),
        src = 'some/path/' + img.data('src');
    img.attr('src', src);
    $('#container').append(img);
});
var string = '<img src="image.png">';

var matches = string.match(/src\=("|')(.*?)\1/);

console.log(matches[2]);