当我在Safari 6.0中评估以下javascript时:
Array.indexOf([1,2,3],3)
Run Code Online (Sandbox Code Playgroud)
它返回-1,基本上说3不在数组中!
但在Firefox中它正确返回2.
我知道Array.indexOf是一个相对较新的函数,所以我有代码测试它是否存在,如果没有定义它.但是看起来这个功能内置于Safari中.
这是一个错误,还是我做错了什么?
编辑:这实际上是问题的简化版本.我实际上在做的是尝试在TR中找到TD单元的索引:
var tr = td.parentNode
var col = Array.indexOf(tr.cells,td)
Run Code Online (Sandbox Code Playgroud)
tr.cells没有indexOf.但是,使用Array.indexOf我可以这样对待它,至少在Firefox中.在Safari中,这不起作用.
我想在这种情况下我实际上可以使用cellindex,但如果没有定义,我将如何获取索引?
我想知道为什么你不按预期使用它:
[1,2,3].indexOf( 3 );
Run Code Online (Sandbox Code Playgroud)
除非这是一个学术问题.在这种情况下,它实际上是一个特殊的Firefox实现的bug.如果你想Array.prototype直接使用这个版本,你应该这样
Array.prototype.indexOf.call([1,2,3], 3);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1358 次 |
| 最近记录: |