jQuery onclick没有得到正确的值

时间:2015-01-08 09:47:31

标签: javascript jquery html onclick

我正在尝试在点击事件中获取图像ALT值,但它不能正常工作,并在点击时显示相同的值(图像ALT)。

以下是代码:

HTML:

<a href="//cdn.shopify.com/s/files/1/0720/9527/products/MDM02-south-east-postcode-district-map-detail-large_ee8e2826-b33b-4c77-83b2-f162df33ec33_large.gif?v=1420644155" class="product-photo-thumb" title="Map 1">
    <img id="imgVariants" src="//cdn.shopify.com/s/files/1/0720/9527/products/MDM02-south-east-postcode-district-map-detail-large_ee8e2826-b33b-4c77-83b2-f162df33ec33_compact.gif?v=1420644155" alt="Map 1">
</a>

<a href="//cdn.shopify.com/s/files/1/0720/9527/products/png_large.png?v=1420644163" class="product-photo-thumb" title="Map 2">
    <img id="imgVariants" src="//cdn.shopify.com/s/files/1/0720/9527/products/png_compact.png?v=1420644163" alt="Map 2">
</a>

Javascript / jQuery

$(document).ready(function(){
    $('.product-photo-thumb').on("click", function (e) {
      e.preventDefault();
      alert(document.getElementById("imgVariants").alt);
    });
});

>> jsFiddle link

我错过了什么吗?


P.S。:我知道ID必须是唯一的,但我想要一个即使没有唯一身份证也可以使用的解决方案。

3 个答案:

答案 0 :(得分:2)

有两个元素same Id(不应该),删除它们,你应该使用类似e.target

的内容

这是一个工作示例.. http://jsfiddle.net/83cyuozz/1/

   $(document).ready(function(){
        $('.product-photo-thumb').on("click", function (e) {
          e.preventDefault();
          alert(e.target.alt);
        });
      });

答案 1 :(得分:2)

试试这段代码

$(document).ready(function(){
    $('.product-photo-thumb').on("click", function (e) {
      e.preventDefault();
      alert($(this).find('img').attr('alt'));
    });
});

DEMO

注意 ID必须是唯一的。

答案 2 :(得分:2)

以下是可以有多个具有相同ID的元素的工作示例,但它可以正常工作:JSFIDDLE

  $(document).ready(function(){
    $("body").on("click",".product-photo-thumb", function (e) {
      e.preventDefault();

      alert($(this).children("img").attr("alt"));
    });
  });