未捕获的TypeError:x不是map返回数组的函数

时间:2017-07-14 10:19:03

标签: javascript jquery

以下是我如何获取父母内部div的所有内容

 var ids = $('#layers div').map(function(index) {
                return $(this).attr('id'); 
           });

但是当我这样做时

ids.reverse();

令我惊讶的是它显示了一个错误(Uncaught TypeError: ids.reverse is not a function),尽管反向是本机javascript数组函数。

所以我很快就怀疑它不是一个数组对象,并查看了Jquery map()函数文档,它说

  

将数组或对象中的所有项目转换为新的项目数组。

可能是什么问题?

1 个答案:

答案 0 :(得分:4)

您应该使用.get().map()来获取原生数组。

  

由于返回值是包含数组的jQuery对象,因此在结果上调用.get()以使用基本数组非常常见。

var ids = $('#layers div').map(function(index) {
    return $(this).attr('id'); 
}).get();



var ids = $('div').map(function(index) {
  return $(this).attr('id');
}).get();

console.log(ids.reverse());

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="1"></div>
<div id="2"></div>
&#13;
&#13;
&#13;