0

这是一个愚蠢的小问题,我知道,但我似乎无法找到答案......

我正在尝试使用带有名称的数组更改 Jquery 中的图像,但它读取 n、g 和 2 而不是实际值。

我的代码是:

var huidig = 1;
var arrayTekenen = jQuery.makeArray("peng1.png","peng2.png","peng3.png","peng4.png");

$(document).ready(
     function() {
         $('#next').bind('click', ClickNext);
     }
 )
 function ClickNext() {
    if(huidig<4)
       {
        huidig++; 
       }

    $("#tekenstap").attr('src', 'img/' + arrayTekenen[huidig]); 
 }

这是单击对象时出现的错误:

未能在 http://localhost:8383/HTML5Application/img/n 加载资源(15:27:28:901 | 错误,网络)在 http 加载资源(15:27:30:048 | 错误,网络)失败:// localhost:8383/HTML5Application/img/g 无法在 http:// localhost:8383/HTML5Application/img/2 加载资源(15:27:30:729 | 错误,网络)

提前致谢。

4

2 回答 2

4

jQuery.makeArray并没有按照你的想法去做。

它不是用来创建数组的。它将类数组转换为真正的数组,并且只接受一个参数:类数组。

如果要创建数组,请使用以下语法:

var arrayTekenen = ["peng1.png","peng2.png","peng3.png","peng4.png"];

您应该阅读的一些资源:MDN Array

现在你问我:什么是类数组对象?它是一个看起来像数组的对象,嘎嘎声像数组,走路像数组,但不是数组。示例是参数NodeListsHTMLCollection。主要是可以用作数组,但没有数组方法,如slice, splice,forEach等。

$.makeArray基本上是这样的:

function makeArray(obj) {
    return Array.prototype.slice.call(obj);
}

我留给您了解这是如何工作的:-)

于 2013-05-25T13:37:22.910 回答
2

这不是如何jQuery.makeArray工作的。只需使用数组文字表示法:

var arrayTekenen = ["peng1.png","peng2.png","peng3.png","peng4.png"];

在您的情况下,arrayTekenen 原来是一个字符串(“peng2.png”),所以 arrayTekenen[i] 是一个字符而不是文件名。

于 2013-05-25T13:37:10.740 回答