这是我的代码:
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]
工作正常。在我的测试用例中,slideNumber
为1
。
我也试过这些:
var singleimageidDiv = imageIDDivs[Number(slideNumber)]
var singleimageidDiv = imageIDDivs[parseInt(slideNumber)]
使用变量作为数组索引的正确方法是什么?
答案 0 :(得分:4)
用基数解析为int。
这是正确的方法:
imageIDDivs[parseInt(slideNumber, 10)];
Live DEMO 如果它不起作用,那么你的问题就在别的地方。
BTW索引也适用于字符串。 DEMO
答案 1 :(得分:1)
innerHTML
返回元素内的字符串,所以即使你的元素中有一个数字,它也会以字符串形式返回,这就是为什么当你使用该变量作为数组的索引时,你没有得到结果。
使用parseInt是一个可接受的解决方案,您也可以执行类似span.innerHTML * 1
的操作,这会强制JS将字符串视为整数。
答案 2 :(得分:0)
我认为,您的getSpanWithClass
功能中存在错误。