Javascript 将onclick change image附加到无id标签的可变img金额

Javascript 将onclick change image附加到无id标签的可变img金额,javascript,jquery,html,Javascript,Jquery,Html,因此,如果图像上有id标签,我就知道如何做到这一点,没有问题,但我不知道没有id标签怎么做 我想点击一个缩略图,并有大图片的变化 问题: 图像的数量各不相同,因此我希望能找到一种将点击事件附加到所有元素的方法 这些图像没有id标签 我不能仅通过javascript和jquery直接编辑html 主要图片: <div id="IDX-primaryPhoto" class="IDX-detailsPhotoWrap"> <a href=""> <img

因此,如果图像上有id标签,我就知道如何做到这一点,没有问题,但我不知道没有id标签怎么做

我想点击一个缩略图,并有大图片的变化

问题:

  • 图像的数量各不相同,因此我希望能找到一种将点击事件附加到所有元素的方法

  • 这些图像没有id标签

  • 我不能仅通过javascript和jquery直接编辑html

  • 主要图片:

      <div id="IDX-primaryPhoto" class="IDX-detailsPhotoWrap">
      <a href="">
      <img src="CAT9536786.jpg" id="IDX-detailsPhoto">
     </a>
     </div>
    
    
    
    缩略图:

     <div id="IDX-detailsShowcase">
    
        <div class="IDX-showcaseSlide" id="IDX-detailsImage1">
            <div class="IDX-showcaseContent">
            <img alt="Property Photo" src="CAT9536786.jpg" class="IDX-detailsShowcaseImage">
            </div>
        </div>
    
        <div class="IDX-showcaseSlide" id="IDX-detailsImage2">
            <div class="IDX-showcaseContent">
            <img alt="Property Photo" src="CAT9536786A.jpg" class="IDX-detailsShowcaseImage">
            </div> 
        </div>
    
    </div>
    

    附加事件处理程序或使用任何jQuery函数都不需要id,jQuery提供了一个可以使用和组合以获得所需元素的id。在您的情况下,您的图像已经有一个类,因此请使用类选择器:

    $('.IDX-detailsShowcaseImage').click(your_function);
    

    您不需要id来附加事件处理程序或使用任何jQuery函数,jQuery提供了一个可以使用和组合以获得所需元素的id。在您的情况下,您的图像已经有一个类,因此请使用类选择器:

    $('.IDX-detailsShowcaseImage').click(your_function);
    

    在jQuery中,单击“附加到所有图像”,如下所示:

    $(document).on("click", ".IDX-detailsShowcaseImage img", function(){
         var img_src = $(this).attr('src')
         //your code here
    });
    

    因此,您可以动态创建
    元素,并且仍然响应所有单击事件,并使用jQuery中的
    $(此)

    访问触发事件的元素单击后附加到所有图像,如下所示:

    $(document).on("click", ".IDX-detailsShowcaseImage img", function(){
         var img_src = $(this).attr('src')
         //your code here
    });
    

    因此,您可以动态创建
    元素,并且仍然响应所有单击事件,并使用
    $(this)

    访问触发事件的元素。您可以使用jQuery选择器选择特定类/id的所有子元素

    $(".IDX-showcaseSlide img").click(function);
    

    您可以使用jQuery选择器选择特定类/id的所有子元素

    $(".IDX-showcaseSlide img").click(function);
    

    这是我按照OP的要求给出的答案


    你的缩略图有等级。您可以将其用作jquery选择器

    $('.IDX detailsShowcaseImage')

    因此:

    $('.IDX-detailsShowcaseImage').click(function () {
        var href = $(this).prop('src'); //grab the src of the thumbnail
        $('#IDX-detailsPhoto').prop('src', href); //set it as the big image
    });
    

    这是我按照OP的要求回答的问题


    你的缩略图有等级。您可以将其用作jquery选择器

    $('.IDX detailsShowcaseImage')

    因此:

    $('.IDX-detailsShowcaseImage').click(function () {
        var href = $(this).prop('src'); //grab the src of the thumbnail
        $('#IDX-detailsPhoto').prop('src', href); //set it as the big image
    });
    

    这不使用id,适用于所有详细信息图像:

    $(".IDX-detailsShowcaseImage").click(function(arg) {
        $(".IDX-detailsPhotoWrap img").attr('src', $(arg.target).attr('src'));
    });
    

    这不使用id,适用于所有详细信息图像:

    $(".IDX-detailsShowcaseImage").click(function(arg) {
        $(".IDX-detailsPhotoWrap img").attr('src', $(arg.target).attr('src'));
    });
    


    谢谢你的JSFIDLE。你的缩略图很有吸引力。您可以将其用作jquery选择器<代码>$('.IDX detailsShowcaseImage')@pedrostrada将其作为工作示例的答案+1。感谢JSFIDLE。您的缩略图有一个类。您可以将其用作jquery选择器<代码>$('.IDX detailsShowcaseImage')@pedrostrada写下,作为工作示例的答案+1,我在页面上还有其他图像,但我忘记了mention@tman“无忧”修改了答案以包含类选择器。@tman看到您询问如何访问
    src
    属性,在回答中也添加了这一点。我在页面上还有其他图片,我忘记了mention@tman“无忧”修改了答案以包含类选择器。@tman看到您询问如何访问
    src
    属性,并将其添加到了答案中。这样我就可以将源代码传递到主映像$(this).src没错,在处理函数中,
    $(this)
    将引用单击的图像的jQuery对象,这样我就可以将源代码传递给主图像$(this).src没错,在处理程序函数中,
    $(this)
    将引用被单击的图像的jQuery对象,使该JSFIDLE成为linklol。。。。嘿@pedrostrada知道这里出了什么问题吗@tman看起来像
    。prop()
    不是jquery库中的方法。。。试着使用
    attr()
    @tman,不要在jsfidle中使用
    等标记。对于脚本,请使用“资源”选项。我删除了这些,正在工作。。。再一次。jQuery声明的两个都可能是罪魁祸首。@Braiam我在页面上试用了它,然后才将其放入JSFIDLE中,但它没有起作用。尽管我现在已经开始使用了,但不用担心!让JSFIDLE成为链接LOL。。。。嘿@pedrostrada知道这里出了什么问题吗@tman看起来像
    。prop()
    不是jquery库中的方法。。。试着使用
    attr()
    @tman,不要在jsfidle中使用
    等标记。对于脚本,请使用“资源”选项。我删除了这些,正在工作。。。再一次。jQuery声明的两个都可能是罪魁祸首。@Braiam我在页面上试用了它,然后才将其放入JSFIDLE中,但它没有起作用。尽管我现在已经开始使用了,但不用担心!