【发布时间】:2013-01-29 20:56:19
【问题描述】:
代码:
function showlayer(name){
var size = js_array.length
var index = js_array.indexOf(name);
var plusOne = js_array[index+1];
document.write("" + name + "<br />" + js_array + "<br />" + index + "<br />" +
plusOne + "<br />" )
...
}
输出:
301
300,299,301,290,303,304,302,310,291,306,308,305,307,292,294,295,309
-1
300
name 的所有可能值都在数组中,但由于某种原因 indexOf() 从未找到它们。怎么了?
【问题讨论】:
-
你在比较数字和字符串吗?
-
这不是您在此处具体看到的问题,但值得指出的是,
Array.indexOf()在 IE8 及更低版本上不可用。见这里:stackoverflow.com/questions/2790001/…. -
@pseudosavant 是的,我知道。希望不会有太大问题
-
那个 stackoverflow 链接有一个 polyfill,如果你需要的话,可以为 IE6-8 添加对
Array.indexOf()的支持。我现在更喜欢只支持 IE9 及更高版本,但仍然有很多 IE8 人在那里。
标签: javascript indexof