gpt4 book ai didi

jquery - 有人可以用外行的话解释 .map() 吗?

转载 作者:行者123 更新时间:2023-12-01 02:35:37 26 4
gpt4 key购买 nike

更新1:

这是脚本的更多内容:

$(".favorites").sortable(
{update:function() {

var that = this;

var urls = "";
var texts = "";

$.map($(".favorites a"), function(elt) {
urls += "url=" + elt.href + "&";
texts += "text=" + $(elt).html() + "&";
});

$.ajax({
url: 'favorites.asmx/save',
type: 'POST',
data: { strItems:$(that).sortable("serialize",{key:'item'}), strURLs:urls.substr(0,urls.length - 1), strTexts:texts.substr(0,texts.length - 1) },
error: function(xhr, status, error) {
console.log(xhr.responseText);
},
success: function() {
console.log("Values sent:- strURLs: " + urls.substr(0,urls.length - 1));
}
});

原始问题:

我有以下有效的脚本,但我不明白它:

$.map($(".favorites a"), function(elt) { 
urls += "url=" + elt.href + "&";
texts += "text=" + $(elt).html() + "&";
});

我了解此链接中的基本示例:http://api.jquery.com/jQuery.map/ ,但我不明白我上面发布的脚本。

最佳答案

map 的目的是通过获取传入的数组或对象的每个元素并通过您提供的函数过滤它们来创建数组;函数的返回值被收集到结果数组中,这是 map 的返回值。

该代码没有执行此操作。它没有从迭代器返回任何内容,也没有使用结果数组。基本上它只是重新发明.each通过滥用map。该脚本应该是:

$(".favorites a").each(function() { 
urls += "url=" + this.href + "&";
texts += "text=" + $(this).html() + "&";
});

(请注意,我在这里假设 urlstexts 已在您引用的代码之前声明并初始化。)

以下是正确使用map的示例:

var hrefs = $.map($(".favorites a"), function(elt) {
return elt.href;
});
// hrefs is now an array containing the `href`s of all of the links

关于jquery - 有人可以用外行的话解释 .map() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6860322/

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