1

因此,如果图像有 id 标签,我会知道如何毫无问题地做到这一点,但我不知道如何在没有它们的情况下做到这一点。

http://jsfiddle.net/2GwEm/

我想单击缩略图并更改大图。

问题:

  1. 图像的数量各不相同,所以我希望有一种将点击事件附加到所有元素的方法。

  2. 图片没有id标签

  3. 我只能通过 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>
4

5 回答 5

2

这是我应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
});

jsfiddle.net/2GwEm/2

于 2013-07-26T18:03:11.080 回答
1

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

$('.IDX-detailsShowcaseImage').click(your_function);
于 2013-07-26T17:54:57.493 回答
1

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

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

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

于 2013-07-26T17:56:10.957 回答
1

您可以使用 jQuery 选择器来选择某个类/id 的所有子元素

$(".IDX-showcaseSlide img").click(function);
于 2013-07-26T17:57:54.250 回答
0

这不使用 id,适用于所有细节图像:

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

http://jsfiddle.net/2GwEm/9/

于 2013-07-26T19:36:06.007 回答