2017-02-03 28 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(); 
相关问题