在javascript中使用变量作为数组的索引

时间:2012-06-05 19:10:31

标签: javascript indexing

这是我的代码:

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)]

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

3 个答案:

答案 0 :(得分:4)

用基数解析为int。

这是正确的方法:

imageIDDivs[parseInt(slideNumber, 10)];

Live DEMO 如果它不起作用,那么你的问题就在别的地方。


BTW索引也适用于字符串。 DEMO

答案 1 :(得分:1)

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

答案 2 :(得分:0)

我认为,您的getSpanWithClass功能中存在错误。