Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 停止在多个图像上更改图像src_Javascript_Jquery - Fatal编程技术网

Javascript 停止在多个图像上更改图像src

Javascript 停止在多个图像上更改图像src,javascript,jquery,Javascript,Jquery,我正在使用: $(function image_swap() { $('.mainthumb').click(function () { $('.main').attr('src', this.src.replace('-thumb', '')) }); }); 使我的主图像在单击缩略图时更改为其他图像 但是,在一个页面上有不止一个这样的分组(即一个图像下面有两个较小的缩略图),因为它是一个页面下面列出的产品 因此,产品一有: 具有类的主图像具有类的主缩略图图像

我正在使用:

$(function image_swap() {
    $('.mainthumb').click(function () {
        $('.main').attr('src', this.src.replace('-thumb', ''))
    });
});
使我的主图像在单击缩略图时更改为其他图像

但是,在一个页面上有不止一个这样的分组(即一个图像下面有两个较小的缩略图),因为它是一个页面下面列出的产品

因此,产品一有:

具有类的主图像具有类的主缩略图图像 mainthumb和另一个具有mainthumb类的缩略图图像

产品二

具有类的主图像具有类的主缩略图图像 mainthumb和另一个具有mainthumb类的缩略图图像

等等

所以,当我点击产品一的缩略图时,所有的主图像都会变成缩略图图片,因为它们都有相同的类-有没有办法避免每个产品都有不同的类

HTML:

  • 随附:
  • &公牛;项目1
  • &公牛;项目2
  • &公牛;项目3

  • 由于某种原因,HTML代码编辑不显示在该代码块之上,主图像与主

    类,你可以考虑这里的用户。如果是,则不使用类名作为选择器。在这个构造中使用$

    假设你的每一张主图像都接近“重击钉”组。所以要找到最近的。main类元素,我们可以使用最近的

      $(function image_swap() { 
         $('.mainthumb').click(function (){
            $(this).prevAll('.main:first').attr('src', $(this).attr('src').replace('-thumb', ''));
         });
       });
    

    这可能并不完美,但您需要考虑各种选择器,如next()、previous(),并找到最适合您的选项。

    如果您可以在图像组周围使用
    span
    div
    以下代码就可以了,那么您的html就有点问题了

    $('.mainthumb').click(function () {        
        $(this).parent().find('.main').attr('src', this.src.replace('-thumb', ''))
    });
    

    你可以考虑这里的用户。如果是,则不使用类名作为选择器。使用$this构造。

    maintumb
    类应用于什么?你能给出一些html代码或一个帮助很大的提琴吗?jsfiddle:为什么不把完整的代码放在提琴里呢?@John你能把你的html代码也放在一起吗,也许我们可以通过研究找到更好的解决方案。@John刚刚在我的答案中做了一个快速更改,你能试试新的代码吗?我添加了html,但它没有显示在最上面:很酷,因为图像src不可用,我试过你摆弄alt属性。使用prevAll('.main:first'),这将帮助您更新上面的代码[而不是fiddle],这应该可以工作。干杯你必须复制粘贴代码。。。你试过调试它吗?您是否尝试将$(this.prevAll('.main:first').attr('src')记录到控制台或警告其值?你的成功有多大?看看你错在哪里。
    $('.mainthumb').click(function () {        
        $(this).parent().find('.main').attr('src', this.src.replace('-thumb', ''))
    });