0

我有下面的代码,其中函数 getImageNum 接收一个连接有 url 的数组,所以我将这些 url 拆分为一个符号,这样我就可以将它们分开。我的变量 res = path.split("-") 包含分隔的网址。因此 res[0] 给出了一个如下所示的 url:http://www.host.net/dir/file。但我的问题是我想获取 res var 中的每个 url,以便我可以在幻灯片放映中使用它。因此,我希望能够使用一个自动保留不同索引的变量,而不是 res[0]。有关这个想法,请参见下面的代码。

function getImageNum(imageArray) { 
var path;
var res;
var index = 0;

for (i in imageArray) {
    path = imageArray[i];
}

res = path.split("-");

$("#ContentPlaceHolder1_ContentPlaceHolder1_imageView").attr("src", res[index++]);
}

编码:

$("#ContentPlaceHolder1_ContentPlaceHolder1_imageView").attr("src", res[index++]);

只返回相同的图像,并且不遍历整个 res 内容

4

2 回答 2

1
for (i in imageArray) {
    path = imageArray[i];
}

此代码将遍历每个图像,imageArray然后每次覆盖path到最新图像。如果您想在路径中添加更多文本,而不是在需要连接的每个循环中完全替换它。但是,看起来您只想在res变量中存储所有路径的数组,那么为什么还要麻烦字符串呢?

for (i in imageArray) {
    res.push(imageArray[i]);
}

其次,index++不会自动遍历所有索引,它只是一个运算符,它在为您提供旧值后递增该值。res如果您想要所有图像,您将不得不手动循环遍历每个图像。

于 2013-08-09T10:40:17.380 回答
0

如果我明白你想要什么,因为它不是很清楚,你的循环有问题正如 Lochemage 之前所说,在for 循环之外用一个在for 循环获取其值的变量做一些事情,将不起作用.

var imageArray = ["http://www.example.com/img1-http://www.example.com/img2-http://www.example.com/img3-http://www.example.com/img4","http://www.example.com/img5-http://www.example.com/img6-http://www.example.com/img7-http://www.example.com/img8-http://www.example.com/img9"];
// this is what I assume is your array
var imageArrayNew = [];

for(i=0; i<imageArray.length; i++) {
    res = imageArray[i].split("-");
    for(j=0; j<res.length; j++) {
        imageArrayNew.push(res[j]);
    }
}

// now imageArrayNew is an array that contains Each of the elements in imageArray and you can do stuff with it

http://jsfiddle.net/flish/U5vvv/ - 它看起来如何的小提琴


编辑删除一个额外的“-”

于 2013-08-10T11:05:32.103 回答