2012-06-05 28 views
0

这里是我的代码:在JavaScript中使用一个变量数组的索引

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

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

+0

如果您直接从源代码复制代码,则会在大多数行的末尾缺少分号。在开始查看可能无法工作的其他原因之前,应该修正代码的语法。 – Wex

+2

在javascript中不需要使用分号;然而,使用它们绝对是一个好习惯。 –

+0

@JoshMein。 _am不是我的评论说:_“我只在堆栈溢出时使用分号......”_ – gdoron

回答

4

以基数解析为int。

这是做它的正确方法:

imageIDDivs[parseInt(slideNumber, 10)]; 

Live DEMO 如果它不工作,那么你的问题是其他地方。


顺便说一句,顺序字符串也适用于字符串。 DEMO

+0

我尝试了parseInt没有,10,它没有工作。与,10,它工作正常。谢谢! – Kyle

+0

@ user1308743。你试过哪个浏览器? 10是默认基数。你可以在http://jsfiddle.net创建一个不工作的DEMO吗? – gdoron

1

innerHTML返回元素中的字符串,因此,如果即使你有你的元素里面一个号码,系统会返回一个字符串,这就是为什么当你使用这个变量作为索引您的阵列,您没有得到结果。 使用parseInt是一个可接受的解决方案,你也可以只是做一些像span.innerHTML * 1,这将强制JS将字符串视为一个整数。

+2

数组指标是字符串与其他所有属性名称一样。不需要数字。 – Bergi

+0

@Berji不知道!射击。 – apsillers

+0

差不多,但不完全。数组是对象,因此,如果使用字符串作为索引,则实际上会添加可以使用相同字符串索引检索的属性。这就是说,'“1”和“1”是数组的两种不同的指示。 – Deleteman

0

我想,你在getSpanWithClass函数中有错误。

相关问题