0

这是我的代码:

var span = getSpanWithClass("galleria-current");
var slideNumber = span.innerHTML
var imageIDDivs = document.getElementsByClassName("slideshowImage");
var singleimageidDiv = imageIDDivs[slideNumber]

如果我用这个,sigleImageidDiv里面什么都没有。如果我像这样输入 0 或 1:

var singleimageidDiv = imageIDDivs[1]

它工作正常。slideNumber1,在我的测试用例中。

我也试过这些:

var singleimageidDiv = imageIDDivs[Number(slideNumber)]

var singleimageidDiv = imageIDDivs[parseInt(slideNumber)]

使用变量作为数组索引的正确方法是什么?

4

3 回答 3

4

使用基数解析为 int。

这是正确的做法:

imageIDDivs[parseInt(slideNumber, 10)];

现场演示 如果它不起作用,那么您的问题出在其他地方。


BTW 索引也适用于字符串。 演示

于 2012-06-05T19:12:21.840 回答
1

innerHTML返回元素内的字符串,因此即使您的元素内有一个数字,它也会作为字符串返回,这就是为什么当您将该变量用作数组的索引时,您不会得到结果。使用 parseInt 是一个可接受的解决方案,您也可以执行类似的操作span.innerHTML * 1,这将强制 JS 将字符串视为整数。

于 2012-06-05T19:13:40.477 回答
0

我认为,您的getSpanWithClass功能有误。

于 2012-06-05T19:13:47.183 回答