Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery中加载图像_Javascript_Jquery_Html - Fatal编程技术网

Javascript 在jQuery中加载图像

Javascript 在jQuery中加载图像,javascript,jquery,html,Javascript,Jquery,Html,问题是 我正在尝试使用jQuery加载图像,以加快页面下载速度。 为了实现这一点,我将以下代码作为一个图像,我希望在页面加载后加载它 <img src="/pixel.png" new-img="/newimage.png"/> 这适用于单个图像,但我有多个图像要转换为此。 我完全被难住了,因为当我尝试像这样加载多个图像时,它会将所有图像设置为最后加载的图像 我不确定,但是“$(这个)”和它有什么关系吗 JSFiddle: 使用: $("img").attr("src", func

问题是

我正在尝试使用jQuery加载图像,以加快页面下载速度。 为了实现这一点,我将以下代码作为一个图像,我希望在页面加载后加载它

<img src="/pixel.png" new-img="/newimage.png"/>
这适用于单个图像,但我有多个图像要转换为此。 我完全被难住了,因为当我尝试像这样加载多个图像时,它会将所有图像设置为最后加载的图像

我不确定,但是“$(这个)”和它有什么关系吗

JSFiddle:

使用:

$("img").attr("src", function(){return $(this).attr("new-img")});
仅供参考,您应该改用data-*属性:

<img src="/pixel.png" data-img="/newimage.png"/>
试试这个:

$("img").each(function(){$(this).attr("src", $(this).attr("new-img"))});

匹配多个元素的选择器上的
.attr
将无法正常工作
.attr()
将其找到的所有图像的属性设置为定义的内容。您也不能使用
$(“img”).attr(“新img”)
设置它,因为
.attr(
)总是只返回它从选择器中找到的第一个值。

,开销稍微小一些:

$(document).ready(function(){ 
    $("img").each(function(){
      $(this).attr('src',$(this).attr("new-img"));
    });
});
$(function(){ 
    $("img").each(function(){
        this.src = this.getAttribute('data-newimg');
    });
});

没有必要为每个映像初始化jQuery一到两次,除非您需要在IE6上使用它。

我认为您可以通过这样做来保存额外的HTTP请求:

<div class="lazy">
  <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAA ///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
    data-src="/newimage.png"
    alt="Good to go" />
</div>

你确定不是吗?谢谢你的澄清+什么?可以将函数用作attr()中的第二个参数?游戏规则改变者@CerylWiltink Ya,检查文档:
.attr(attributeName,function(index,attr))
$(function(){ 
    $("img").each(function(){
        this.src = this.getAttribute('data-newimg');
    });
});
<div class="lazy">
  <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAA ///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
    data-src="/newimage.png"
    alt="Good to go" />
</div>
$(window).on('load', function() {

   $(".lazy > img").each(function(){
      var src = $(this).attr('data-src');

      $(this).attr('src',src);
   });
});