Safari 6.0 で次の JavaScript を評価すると:
Array.indexOf([1,2,3],3)
-1 を返します。これは、基本的に 3 が配列にないことを示しています。
しかし、Firefox では正しく 2 を返します。
Array.indexOf は比較的新しい関数であることを知っているので、存在するかどうかをテストし、存在しない場合は定義するコードがあります。ただし、この機能は Safari に組み込まれているようです。
これはバグですか、それとも何か間違っていますか?
編集:これは実際には問題の単純化されたバージョンです。私が実際に行っているのは、TR 内の TD セルのインデックスを見つけようとしていることです。
var tr = td.parentNode
var col = Array.indexOf(tr.cells,td)
tr.cells
はありませんindexOf
。しかし、Array.indexOf
I を使用すると、少なくとも Firefox ではそのように扱うことができます。Safari では、これは機能しません。
この場合、実際には cellindex を使用できると思いますが、それが定義されていない場合、どうすればインデックスを取得できますか?