在循环中更改img src属性值-jQuery

冈本

我有一个带有图像的轮播,我想根据窗口宽度将src属性值替换为其他data-src属性值。

<div id="mainCarousel">
<img class="img-carousel" src="img/carousel-main-img2.jpg" data-src="img/carousel-main-datasrc-1.jpg" data-srctwo="img/carousel-main-datasrctwo-1.jpg">
<img class="img-carousel" src="img/carousel-main-img3.jpg" data-src="img/carousel-main-datasrc-2.jpg" data-srctwo="img/carousel-main-datasrctwo-2.jpg">

function carouselImages() {

      // set window width in a variable
      var winWidth = $(window).width();
      // set img DOM element in a variable
      var imgCarousel = $('#mainCarousel .img-carousel');
      // declare empty variable for img 'data-src' attribute
      var dataSrc = $();
      // declare empty variable for img 'data-srcTwo' attribute 
      var dataSrcTwo = $();

      //set loop which will iterate on each img DOM element
      for(var i=0; i<imgCarousel.length; i++) {
        // set first width range condition
        if(winWidth > 400 && winWidth < 768) {
          // if width matches condition, store the value of each DOM element's 'data-src' attribute in previously declared variable
          dataSrc = imgCarousel[i].attr('data-src');
          // replace DOM element's 'src' attribute's value with 'data-src' attribute's value 
          imgCarousel[i].attr('src', dataSrc);
        }

        // set second width range condition  
        else if (winWidth >= 768) {
          // if width matches condition, store the value of each DOM element's 'data-src' attribute in previously declared variable
          dataSrcTwo = imgCarousel[i].attr('data-srcTwo');
          // replace DOM element's 'src' attribute's value with 'data-src' attribute's value
          imgCarousel[i].attr('src', dataSrcTwo);
        }

      }

    };

    $(document).ready(function(){
      carouselImages();
    });
    $(window).resize(function () {
       carouselImages();
    });  

我想实现的是图像src值获得与替换data-src值当窗口宽度为401px和767px之间,并与data-srctwo值当窗口宽度>= 768px

在构造函数时,我尝试尽可能地合乎逻辑。但这是行不通的。缩小屏幕和刷新时,或者直接调整浏览器窗口的大小时,src属性值都不会改变。另外,我收到以下错误消息

imgCarousel [i] .attr不是函数

有人能告诉我我的功能背后的逻辑到底出了什么问题吗?以及为什么收到错误消息的原因,因为我认为您不一定需要在条件中包含一个函数。

brk

var imgCarousel = $('#mainCarousel .img-carousel');是匹配元素的数组。它只是DOM元素,而不是jquery对象。因此,在循环并应用attr它时将引发错误。

您需要先将其转换为jquery对象,然后再对其应用.attr方法。

您可以通过以下两种方式之一来引用当前元素

$(imgCarousel[i]).attr('data-src');

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 JQuery 中动态更改 img src 属性

来自分类Dev

如何在jQuery中更改视频src属性值?

来自分类Dev

jQuery:根据下拉选择的值动态更改img src

来自分类Dev

jQuery使用td值作为img的src

来自分类Dev

jQuery使用td值作为img的src

来自分类Dev

jQuery:如何获取多个img的src值

来自分类Dev

用jQuery更改src video属性

来自分类Dev

将属性从data-src更改为src,无需jQuery

来自分类Dev

jQuery如何更改img src路径onclick?

来自分类Dev

根据img src更改后台JQuery

来自分类Dev

单击 jquery 时更改 img src

来自分类Dev

java在for循环中更改值

来自分类Dev

如何使用jQuery有效地将图像属性“ src”从相对URL更改为绝对值?

来自分类Dev

在jquery的每个循环中设置数据属性

来自分类Dev

遍历Jquery循环中的每个属性

来自分类Dev

jQuery在.each循环中获取滑块的值

来自分类Dev

不循环浏览img .src,更改“点击”

来自分类Dev

在for循环中更改SKNode子级的属性

来自分类Dev

如何在for循环中更改属性

来自分类Dev

在for循环中更改SKNode子级的属性

来自分类Dev

更改在for循环中创建的UIView的属性

来自分类Dev

单击div时从数组jQuery循环img src

来自分类Dev

jQuery:无限循环在 2 个 img src 之间交替

来自分类Dev

如何使用 jquery/javascript 在图像标签 <img src=""> 的 src 属性中传递字符串?

来自分类Dev

无法在For循环中更改字典的值?

来自分类Dev

更改范围(“等等”)。行循环中的值

来自分类Dev

JQuery 循环遍历属性值的类,然后根据属性值更改显示样式

来自分类Dev

如果属性值= jQuery更改类

来自分类Dev

使用jQuery更改属性值