更改一组<;img>;使用javascript的标记

更改一组<;img>;使用javascript的标记,javascript,jquery,Javascript,Jquery,我有一组图像标签(大约30个),我需要根据变量的值更改其来源 如何快速轻松地完成这项工作,而不为每个函数编写不同的函数 显然,我可以很容易地改变每一个像 $('#imagethatneedschanging').attr('src', 'alternateimage.png'); 但是什么时候可以这样做呢?我怎样才能恢复到原始的src而不为每个图像标记写入相反的内容呢?您可以使用jqueryeach遍历图像,并为原始图像使用数据属性 var original = false; $( "img"

我有一组图像标签(大约30个),我需要根据变量的值更改其来源

如何快速轻松地完成这项工作,而不为每个函数编写不同的函数

显然,我可以很容易地改变每一个像

$('#imagethatneedschanging').attr('src', 'alternateimage.png');

但是什么时候可以这样做呢?我怎样才能恢复到原始的src而不为每个图像标记写入相反的内容呢?

您可以使用jqueryeach遍历图像,并为原始图像使用数据属性

var original = false;
$( "img" ).each(function( index ) {
   if(!original){
      $(this).data('orig', $(this).data('src'));
      $(this).attr('src', 'alternateimage.png');
   }
   else{
      $(this).attr('src', $(this).data('orig'));
  }
});


您可以使用jQuery对每个图像进行迭代,并对原始图像使用数据属性

var original = false;
$( "img" ).each(function( index ) {
   if(!original){
      $(this).data('orig', $(this).data('src'));
      $(this).attr('src', 'alternateimage.png');
   }
   else{
      $(this).attr('src', $(this).data('orig'));
  }
});


您可以使用jQuery对每个图像进行迭代,并对原始图像使用数据属性

var original = false;
$( "img" ).each(function( index ) {
   if(!original){
      $(this).data('orig', $(this).data('src'));
      $(this).attr('src', 'alternateimage.png');
   }
   else{
      $(this).attr('src', $(this).data('orig'));
  }
});


您可以使用jQuery对每个图像进行迭代,并对原始图像使用数据属性

var original = false;
$( "img" ).each(function( index ) {
   if(!original){
      $(this).data('orig', $(this).data('src'));
      $(this).attr('src', 'alternateimage.png');
   }
   else{
      $(this).attr('src', $(this).data('orig'));
  }
});


首先,为所有图像指定一个类,这样您就可以将所有图像作为一个组引用,而不是按ID单独引用

此函数将执行您需要的操作

function setImageSrc(src) {
    $("img.yourClass").attr("src", function() {
        if (src == "") {
            return $(this).data("original-src");
        }
        else {
            $(this).data("original-src", this.src);
            return src;
        }
    });
}
然后你可以这样调用它来设置所有的图像

setImageSrc("alternateimage.png");
这将设置图像以显示替代图像,并在每个图像元素上存储原始src值。然后,您可以通过调用相同的函数将它们全部恢复到原始状态,但如下所示

setImageSrc("");

首先,给它们一个类,这样您就可以将所有图像作为一个组来引用,而不是按ID单独引用

此函数将执行您需要的操作

function setImageSrc(src) {
    $("img.yourClass").attr("src", function() {
        if (src == "") {
            return $(this).data("original-src");
        }
        else {
            $(this).data("original-src", this.src);
            return src;
        }
    });
}
然后你可以这样调用它来设置所有的图像

setImageSrc("alternateimage.png");
这将设置图像以显示替代图像,并在每个图像元素上存储原始src值。然后,您可以通过调用相同的函数将它们全部恢复到原始状态,但如下所示

setImageSrc("");

首先,给它们一个类,这样您就可以将所有图像作为一个组来引用,而不是按ID单独引用

此函数将执行您需要的操作

function setImageSrc(src) {
    $("img.yourClass").attr("src", function() {
        if (src == "") {
            return $(this).data("original-src");
        }
        else {
            $(this).data("original-src", this.src);
            return src;
        }
    });
}
然后你可以这样调用它来设置所有的图像

setImageSrc("alternateimage.png");
这将设置图像以显示替代图像,并在每个图像元素上存储原始src值。然后,您可以通过调用相同的函数将它们全部恢复到原始状态,但如下所示

setImageSrc("");

首先,给它们一个类,这样您就可以将所有图像作为一个组来引用,而不是按ID单独引用

此函数将执行您需要的操作

function setImageSrc(src) {
    $("img.yourClass").attr("src", function() {
        if (src == "") {
            return $(this).data("original-src");
        }
        else {
            $(this).data("original-src", this.src);
            return src;
        }
    });
}
然后你可以这样调用它来设置所有的图像

setImageSrc("alternateimage.png");
这将设置图像以显示替代图像,并在每个图像元素上存储原始src值。然后,您可以通过调用相同的函数将它们全部恢复到原始状态,但如下所示

setImageSrc("");

谢谢,这确实有效,但您知道为什么在cordova项目中,它不会在一个会话之间持续存在吗?似乎我需要向本地存储提交一个值?不确定这是什么意思。如果你的意思是关闭应用程序,然后再次运行它,那么是的,一定要考虑使用localStorage。让该函数存储一个值是很简单的,然后你只需要在应用程序启动时获取该值,并用它运行该函数。我把它全部处理好了,最后不需要本地存储。我只是在打开时意外调用了
setImageSrc(“”)
。啊,好的。很高兴你把它整理好了:)谢谢,这确实管用,但你知道为什么它不会在cordova项目中一个会话一个会话地持续下去吗?似乎我需要向本地存储提交一个值?不确定这是什么意思。如果你的意思是关闭应用程序,然后再次运行它,那么是的,一定要考虑使用localStorage。让该函数存储一个值是很简单的,然后你只需要在应用程序启动时获取该值,并用它运行该函数。我把它全部处理好了,最后不需要本地存储。我只是在打开时意外调用了
setImageSrc(“”)
。啊,好的。很高兴你把它整理好了:)谢谢,这确实管用,但你知道为什么它不会在cordova项目中一个会话一个会话地持续下去吗?似乎我需要向本地存储提交一个值?不确定这是什么意思。如果你的意思是关闭应用程序,然后再次运行它,那么是的,一定要考虑使用localStorage。让该函数存储一个值是很简单的,然后你只需要在应用程序启动时获取该值,并用它运行该函数。我把它全部处理好了,最后不需要本地存储。我只是在打开时意外调用了
setImageSrc(“”)
。啊,好的。很高兴你把它整理好了:)谢谢,这确实管用,但你知道为什么它不会在cordova项目中一个会话一个会话地持续下去吗?似乎我需要向本地存储提交一个值?不确定这是什么意思。如果你的意思是关闭应用程序,然后再次运行它,那么是的,一定要考虑使用localStorage。让该函数存储一个值是很简单的,然后你只需要在应用程序启动时获取该值,并用它运行该函数。我把它全部处理好了,最后不需要本地存储。我只是在打开时意外调用了
setImageSrc(“”)
。啊,好的。很高兴你把它整理好了:)