未捕获的类型错误:x 不是映射返回数组上的函数



以下是我如何在父级中获取div的所有id

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

但是当我这样做时

ids.reverse();

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

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

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

可能是什么问题?

您应该将.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>

最新更新