2017-02-03 26 views
0

我有下面的代碼來顯示在IntelliJ中使用jQuery的數組(結果和數組)。數組類型不支持jQuery函數Javascript

for (var y = 0; y < result[0].length; y++) { 
        result[0][y].show(); 

for (var z = 0; z < arrays[0].length; z++){ 
        arrays[0][z].show(); 

有趣拋出像下面

Uncaught TypeError: result[0][y].show is not a function

但它顯示優良關於 '陣列' 的異常的 '結果'。當我通過檢查兩個陣列對象類型

typeof(result); 
typeof(arrays); 

我只得到'對象'。下面是結果和數組結構的截圖。

結果 enter image description here

陣列 enter image description here

因此,無論是相似的。那麼爲什麼我不能使用.show()作爲'result'並引發錯誤。如果它不適合jQuery .show()的類型,請解釋我如何找出並告訴我是否有任何方法將該數組轉換爲能夠支持jQuery .show()函數的用法。 請幫忙。

+0

因爲它不是一個jQuery對象。 – SLaks

+0

* typeof *是一個運算符,不是一個函數,所以'typeof result;'。 ;-)發佈文字比圖片好得多。 – RobG

+0

看起來你的數組嵌套比代碼所期望的更深一層。 'result [0] [0]'是一個由8個jQuery對象組成的數組,而不是一個jQuery對象本身。 –

回答

0

結果[0] [y]不是一個jquery對象,它是一個數組。 你需要循環更深。

即使數組內的項目是DOM對象而不是一個jQuery對象。您可以通過使用$將其轉換成jQuery對象()

試試這個

for (var y = 0; y < result[0].length; y++) { 
    for (var z = 0; z < result[0][y].length; z++) { 
       $(result[0][y][z]).show(); 

for (var w = 0; w < arrays[0].length; w++){ 
    for (var x = 0; x < result[0][w].length; x++) { 
       $(result[0][w][x]).show();