javascript - 多维数组和循环的问题

标签 javascript jquery arrays loops

此脚本随机崩溃,并显示消息“无法获取未定义或空引用的属性.length”,引用“matched_array_pics.length”。如果我克隆、将相同的图像两次附加到 #train div,它肯定会崩溃。

$(document).ready(function () {

    var starting_pics = ["AN.gif", "CN.gif", "EN.gif", "GN.gif"];

    var an_array_pics = ["CN.gif", "EN.gif", "GN.gif", "AN.gif"];
    var cn_array_pics = ["EN.gif", "GN.gif", "AN.gif", "CN.gif"];
    var en_array_pics = ["GN.gif", "AN.gif", "CN.gif", "EN.gif"];
    var gn_array_pics = ["AN.gif", "CN.gif", "EN.gif", "GN.gif"];

    var grand_array_pics = [an_array_pics, cn_array_pics, en_array_pics, gn_array_pics];

    var i = 0;

    for (i = 0; i < starting_pics.length; i++) {
        $("<img/>").attr("src", "images/" + starting_pics[i]).load(function () {
            $(this).appendTo("#main");
            $(this).addClass("pics");
        });
    }


    $("#main").on("click", ".pics", function () {

        var j = $(".pics").index(this); // gets the index for the matched_array_pics...
          console.log(j);

        $("#sidebar .pics").remove();
        $(this).clone().appendTo("#train");
        $(this).clone().appendTo("#sidebar");
        $("#main .pics").remove();

        var matched_array_pics = grand_array_pics[j];   // ... in grand_array_pics.

        var k = 0;

        for (k = 0; k < matched_array_pics.length; k++) {
            $("<img/>").attr("src", "images/" + matched_array_pics[k]).load(function () {
                $(this).appendTo("#main");
                $(this).addClass("pics");
            });
        }
    });
});       //end ready

最佳答案

我认为问题出在这一行: var j = $(".pics").index(this); 我认为应该这样重写: var j = $(this).index(); 如果您可以在相关行之后添加 console.log(j); 来查看 j 的内容,将会很有帮助 最终成为。当此行执行 var matches_array_pics = grand_array_pics[j]; 我认为您会得到 undefined 因为当您的代码运行时 j 不是数字.

关于javascript - 多维数组和循环的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17913324/

相关文章:

java - 在服务器端运行 javascript

javascript - 将图像复制到剪贴板

javascript - 使用 Javascript 选择其中一项时如何禁用复选框列表中的其他项目

php - 无法使用查询值创建数组

javascript - 如何在 webpack hook 中打破循环

javascript - Jquery - 最接近的值并替换div

javascript - jQuery 由于附加到 switch 语句的额外字符而失败

jquery - 从 div 中删除元素

php - 在 PHP 中拆分数组的哪个函数更有效?

javascript - 从对象中的其他数组创建数组