比较图像src jquery

比较图像src jquery,jquery,html,Jquery,Html,我正在做一个游戏,其中有12张牌颠倒过来。当你点击一张卡片时,它会翻转一张图片,每张图片有2张,因此12张卡片上总共有6张图片。关键是要匹配这些图像。我在比较img src是否与翻转的图像相同时遇到了问题。到目前为止,我所看到的是: 脚本应如下所示: var lastSelected; $(document).ready(function(){ addImg(); start(); click(); }); function check(el){ if($(l

我正在做一个游戏,其中有12张牌颠倒过来。当你点击一张卡片时,它会翻转一张图片,每张图片有2张,因此12张卡片上总共有6张图片。关键是要匹配这些图像。我在比较img src是否与翻转的图像相同时遇到了问题。到目前为止,我所看到的是:


脚本应如下所示:

var lastSelected;
$(document).ready(function(){
    addImg();
    start();
    click();
});

function check(el){
    if($(lastSelected).attr("src") == $(el).find("img").attr("src") && $(lastSelected).hasClass("visible")) {
            // do sth. with $(this)
            alert("gotcha!");
    }
    lastSelected = $(el).find("img");
}

function start(){
    $("div.row div img").addClass("hidden");
};

function click(){
    $("div.row div").each(function(){
        $(this).click(function(){
         if($("img", this).hasClass("hidden")){
            $("img",this).removeClass("hidden");
            $("img",this).addClass("visible");
             check($(this));

         }else if($("img",this).hasClass("visible")){
            $("img",this).removeClass("visible");
            $("img",this).addClass("hidden");
         }

        });

    });

};

function addImg (){

    var images = ["http://efreeman.userworld.com/jQuery/images/cheese.gif","http://efreeman.userworld.com/jQuery/images/eggs.gif","http://efreeman.userworld.com/jQuery/images/kitchen_blender.gif","http://efreeman.userworld.com/jQuery/images/tea.gif","http://efreeman.userworld.com/jQuery/images/kitchen_collander.gif","http://efreeman.userworld.com/jQuery/images/kitchen_teapot.gif"];

var imagesused = [];
$('.container div:not(.row)').each(function() {
    var rand = Math.floor(Math.random() * images.length);
    $(this).append('<img src="' + images[rand] + '"/>');
    if (imagesused.indexOf(images[rand]) != -1) images.splice(rand, 1);
    else imagesused.push(images[rand]);
    console.log(images);

});
}
function check(){
    $('img.visible:not(.correct):eq(0)').attr('src') == $('img.visible:not(.correct):eq(1)').attr('src'))){
        $('img.visible:not(.correct)').addClass('correct')
    }
}
var选择;
$(文档).ready(函数(){
addImg();
start();
单击();
});
功能检查(el){
if($(lastSelected).attr(“src”)==$(el.find(“img”).attr(“src”)和&$(lastSelected.hasClass(“可见”)){
//用美元做某事(这个)
警惕(“抓住了!”);
}
lastSelected=$(el.find(“img”);
}
函数start(){
$(“div.row div img”).addClass(“隐藏”);
};
函数单击(){
$(“div.row div”)。每个(函数(){
$(此)。单击(函数(){
if($(“img”,this).hasClass(“隐藏”)){
$(“img”,this.removeClass(“隐藏”);
$(“img”,this).addClass(“可见”);
勾选($(此));
}else if($(“img”,this).hasClass(“可见”)){
$(“img”,this.removeClass(“可见”);
$(“img”,this).addClass(“隐藏”);
}
});
});
};
函数addImg(){
变量图像=[”http://efreeman.userworld.com/jQuery/images/cheese.gif","http://efreeman.userworld.com/jQuery/images/eggs.gif","http://efreeman.userworld.com/jQuery/images/kitchen_blender.gif","http://efreeman.userworld.com/jQuery/images/tea.gif","http://efreeman.userworld.com/jQuery/images/kitchen_collander.gif","http://efreeman.userworld.com/jQuery/images/kitchen_teapot.gif"];
var imagesused=[];
$('.container div:not(.row)')。每个(函数(){
var rand=Math.floor(Math.random()*images.length);
$(此)。附加(“”);
if(imagesused.indexOf(images[rand])!=-1)images.splice(rand,1);
else imagesused.push(images[rand]);
控制台日志(图像);
});
}

您应该这样做:

var lastSelected;
$(document).ready(function(){
    addImg();
    start();
    click();
});

function check(el){
    if($(lastSelected).attr("src") == $(el).find("img").attr("src") && $(lastSelected).hasClass("visible")) {
            // do sth. with $(this)
            alert("gotcha!");
    }
    lastSelected = $(el).find("img");
}

function start(){
    $("div.row div img").addClass("hidden");
};

function click(){
    $("div.row div").each(function(){
        $(this).click(function(){
         if($("img", this).hasClass("hidden")){
            $("img",this).removeClass("hidden");
            $("img",this).addClass("visible");
             check($(this));

         }else if($("img",this).hasClass("visible")){
            $("img",this).removeClass("visible");
            $("img",this).addClass("hidden");
         }

        });

    });

};

function addImg (){

    var images = ["http://efreeman.userworld.com/jQuery/images/cheese.gif","http://efreeman.userworld.com/jQuery/images/eggs.gif","http://efreeman.userworld.com/jQuery/images/kitchen_blender.gif","http://efreeman.userworld.com/jQuery/images/tea.gif","http://efreeman.userworld.com/jQuery/images/kitchen_collander.gif","http://efreeman.userworld.com/jQuery/images/kitchen_teapot.gif"];

var imagesused = [];
$('.container div:not(.row)').each(function() {
    var rand = Math.floor(Math.random() * images.length);
    $(this).append('<img src="' + images[rand] + '"/>');
    if (imagesused.indexOf(images[rand]) != -1) images.splice(rand, 1);
    else imagesused.push(images[rand]);
    console.log(images);

});
}
function check(){
    $('img.visible:not(.correct):eq(0)').attr('src') == $('img.visible:not(.correct):eq(1)').attr('src'))){
        $('img.visible:not(.correct)').addClass('correct')
    }
}

因此,如果翻到的卡片都是相同的,那么您可以向它们添加一个
,这样下次就不会再检查它们。这样,您只需检查刚才翻到的两张卡片。

由于您现在有了代码,需要进行一些重构。但要回答您当前的问题,很简单:

var last;
function click(){
    $("div.row div").each(function(){
         // ..snip..

             // added code
             console.log(last == $("img",this).attr("src"));
             last = $("img",this).attr("src");

我不想深入讨论更多细节的原因是,我假设您一次只希望有两张卡片面朝上,因此没有理由循环查看所有可见的卡片。

我正在O'reilly在线学校学习相同的jQuery课程

答案如下:

要使用的jquery代码

 var lastSelected;
    var score = 0;
    var boxopened = "";
    var imgopened = "";
    var num = 0;
    var moves = 0;
    $(function () {
        $("div.row div img").addClass('hidden');
        addImg();
        click();
        check();
        shuffle();


    });

    function randomFromTo(from, to) {
        return Math.floor(Math.random() * (to - from + 1) + from);
    }

    function shuffle() {
        var children = $("#boxcard").children();
        var child = $("#boxcard div:first-child");

        var array_img = new Array();

        for (i = 0; i < children.length; i++) {
            array_img[i] = $("#" + child.attr("id") + " img").attr("src");
            child = child.next();
        }

        var child = $("#boxcard div:first-child");

        for (z = 0; z < children.length; z++) {
            randIndex = randomFromTo(0, array_img.length - 1);

            // set new image
            $("#" + child.attr("id") + " img").attr("src", array_img[randIndex]);
            array_img.splice(randIndex, 1);

            child = child.next();
        }
    }


    function check(el) {

        if ($(lastSelected).attr("src") == $(el).find("img").attr("src") && $(lastSelected).hasClass("visible")) {
            score = 0 + 2;
            alert("Congradulation! You scored!!" + " " + score + " Points");
        }

        lastSelected = $(el).find("img");
        clearAll();

    }


    function click() {

        var boxes = $(".row img").size();
        $(".row div").click(function () {
            moves++;
            $(".totalmoves").html(moves);
            $(".cover").css({
                "z-index": "9999"
            });
            $(this).children("img").animate({
                "opacity": "1"
            }, function () {
                num++;
                var id1 = $("img.selected").attr("src");
                var id2 = $(this).attr("src");
                $(this).addClass("selected");

                if (num == 2) {
                    num = 0;
                    if (id1 == id2) {
                        $(".selected").removeClass("selected");
                        score = score + 2;
                        alert("Congradulation! You scored!!" + " " + score + " Points");
                        boxes = boxes - 2;
                        if (boxes == 0) {
                            alert("Game Over Your Total Score is :" + score + " Points");
                        }

                        $(".yourscore").html(score);
                    } else {
                        speed = 100;
                        $(".selected").animate({
                            "opacity": "0"
                        }, 400, function () {
                            $(".selected").removeClass("selected");
                            if (score > 1) {
                                score = score - 0.5;
                                $(".yourscore").html(score);
                            }
                        });
                    }
                } else {
                    speed = 100;
                }

                $(this).animate({
                    "padding": "0.1"
                }, speed, function () {
                    $(".cover").css({
                        "z-index": "-9999"
                    });
                });
            });

        });


    };

    // add Random Images
    function addImg() {

        var images = ["http://courses.oreillyschool.com/jquery/QuizzesAndProjects/images/cheese.gif", "http://courses.oreillyschool.com/jquery/QuizzesAndProjects/images/eggs.gif", "http://courses.oreillyschool.com/jquery/QuizzesAndProjects/images/kitchen_blender.gif", "http://courses.oreillyschool.com/jquery/QuizzesAndProjects/images/tea.gif", "http://courses.oreillyschool.com/jquery/QuizzesAndProjects/images/kitchen_collander.gif", "http://courses.oreillyschool.com/jquery/QuizzesAndProjects/images/kitchen_teapot.gif"];

        var imagesused = [];
        $('.container div:not(.row)').each(function () {
            var rand = Math.floor(Math.random() * images.length);
            $(this).append('<img src="' + images[rand] + '"/>');
            if (imagesused.indexOf(images[rand]) != -1) images.splice(rand, 1);
            else imagesused.push(images[rand]);
            console.log(images);

        });
    }
    // Clear the images Button
    var clearAll = function () {
        $(':button').click(function () {
            score = 0;
            $(".yourscore").html(score);
            moves = 0;
            $(".totalmoves").html(moves);
            $(".selected").removeClass("selected");
            $(".row img").animate({
                "opacity": "0"
            }, function () {
                $(".row img").remove();
                addImg();

            });




        });

    };
var选择;
var得分=0;
var=”;
var imgopened=“”;
var num=0;
var=0;
$(函数(){
$(“div.row div img”).addClass(“隐藏”);
addImg();
单击();
检查();
洗牌();
});
函数随机FromTo(from,to){
返回Math.floor(Math.random()*(to-from+1)+from);
}
函数shuffle(){
var children=$(“#boxcard”).children();
var child=$(“#boxcard div:第一个孩子”);
var array_img=新数组();
对于(i=0;i1){
得分=得分-0.5;
$(“.yourscore”).html(分数);
}
});
}
}否则{
速度=100;
}
$(此)。设置动画({
“填充”:“0.1”
},速度,功能(){
$(“.cover”).css({
“z索引”:“-9999”
});