gpt4 book ai didi

javascript - $(...).map() 究竟返回什么?

转载 作者:可可西里 更新时间:2023-11-01 01:22:33 24 4
gpt4 key购买 nike

鉴于此:

<a href="1">1</a>
<a href="2">2</a>

这是一个返回 href 值数组的函数:

e = $('a').map(function(v) { return $(this).attr('href'); });
console.log(e);

但是它给了

["1", "2", prevObject: x.fn.x.init[2], context: document, jquery: "1.10.2", constructor: function, init: function…]

如何修改它以仅返回原始数组 ["1", "2"]?

最佳答案

是因为jQuery.fn.map返回一个新的 jQuery 对象,你应该使用 jQuery.fn.get获取数组:

var a = $('a').map(function(v, node) { 
// v is the index in the jQuery Object,
// you would maybe like to return the domNode or the href or something:
// return node.href;

return v;
}).get(); // <-- Note .get() converts the jQuery Object to an array

微优化:

如果您查看jQuery.fn.get 的源代码,您会发现它指向jQuery.fn.toArray。 :

function ( num ) {
return num == null ?

// Return a 'clean' array
this.toArray() :

// Return just the object
( num < 0 ? this[ this.length + num ] : this[ num ] );
}

所以你也可以调用:

$('a').map(...).toArray();

关于javascript - $(...).map() 究竟返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17490837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com