関数を実行すると が -1 を返すという問題がありjQuery.InArray()
ますが、テストしている値が間違いなく配列にあることはわかっています。
実行する直前に配列の値を console.log にするjQuery.inArray()
と、値が存在して表示されるため、それらが配列内にあることがわかります。これが私が取り組んでいるものの例です:
/* -- In page.php -- */
images = [8, 13, 21, 32, 40, 56];
/* -- In script.js -- */
console.log('images->', images);
//output images-> [8, 13, 21, 32, 40, 56]
var testingValue = 13;
console.log('inArray->', jQuery.inArray(testingValue, images)); //Should return 1
//output inArray-> -1
console.log('inArray->', jQuery.inArray(13, images)); //Should return 1
//output inArray-> -1
console.log('inArray->', jQuery.inArray("13", images)); //Should return -1
//output inArray-> -1
console.log('inArray->', jQuery.inArray('13', images)); //Should return -1
//output inArray-> -1
-1
上位 2 つは返されるはずですが、これらはすべて返され1
ます。奇妙なことjQuery.inArray(testingValue, images)
に、コンソールで手動でテストすると、値 1 が得られます。
注意すべき点: 変数images
は、js ファイルが含まれる php ページに作成されます。これは問題になりません。
追記:はい、スクリプトのこの部分が実行されるかなり前に jQuery が含まれています。この関数の前に、他の多くの jQuery 関数が正常に実行されています。
私が疑問に思っているのは、この機能に落とし穴があるかどうかです。私は過去にそれをうまく使用してきましたが、これが適切な値を返すのを妨げるようなコードは何も見当たりません。