使用相同的数据值jquery隐藏图像

时间:2015-02-10 23:54:33

标签: javascript jquery

我试图编写一个网站,其目标是点击两个相同的图像,它隐藏了你设法匹配的两个图像。

$(document).ready(function(){
    var animal1;
    var animal2;
  $(".memory1").on("click", function(){  
      animal1 = $(this).data('animal');
  });

    $(".memory2").on("click", function(){  
      animal2 = $(this).data('animal');
      if (animal1==animal2){
         $(this).data('animal').hide();          
      }
      else {
          alert("Wrong, Try again!");
      }
  });
 });

所以它出错的地方显然是

$(this).data('animal').hide(); 

但是我无法想出隐藏这两种图像的方法,或者更好的方法来实现它......:/

http://jsfiddle.net/4vgfca76/

1 个答案:

答案 0 :(得分:1)

这并不像你认为的那样工作

$(this).data('animal').hide();   

data与一个参数一起使用时,它会获得数据属性,您应该已经知道,因为您已经在上面几行进行了操作。

你得到的是字符串hund等,而且该字符串没有hide()方法。

您应该使用属性选择器来选择具有该属性的元素

$(document).ready(function () {
    var animal1, animal2;

    $(".memory1").on("click", function () {
        animal1 = $(this).data('animal');
    });

    $(".memory2").on("click", function () {
        animal2 = $(this).data('animal');

        if (animal1 == animal2) {
            $('img[data-animal="'+animal1+'"]').hide();
        } else {
            alert("Fel! Försök igen");
        }
    });
});