Red*_*ves 34 javascript jquery
我试图更好地理解jQuery.map函数.
因此,一般而言.map采用数组并将其"映射"到另一个项目数组.
简单的例子:
$.map([0,1,2], function(n){
return n+4;
});
Run Code Online (Sandbox Code Playgroud)
结果在[4,5,6]
我想我明白它的作用.我想知道为什么有人需要它.这个功能的实际用途是什么?你是如何在你的代码中使用它的?
Ron*_*era 35
映射有两个主要目的:从项目数组中获取属性,以及将每个项目转换为其他项目.
假设您有一个表示用户的对象数组:
var users = [
{ id: 1, name: "RedWolves" },
{ id: 2, name: "Ron DeVera" },
{ id: 3, name: "Jon Skeet" }
];
Run Code Online (Sandbox Code Playgroud)
映射是从每个项目中获取特定属性的便捷方式.例如,您可以将其转换为用户ID数组:
var userIds = $.map(users, function(u) { return u.id; });
Run Code Online (Sandbox Code Playgroud)
再举一个例子,假设您有一组元素:
var ths = $('table tr th');
Run Code Online (Sandbox Code Playgroud)
如果要存储这些表头的内容供以后使用,可以获取其HTML内容的数组:
var contents = $.map(ths, function(th) { return th.html(); });
Run Code Online (Sandbox Code Playgroud)
JPo*_*Pot 23
$.map
是关于转换集合中的项目.
就DOM而言,我经常使用它来快速从我的元素中提取值:
var usernames = $('#user-list li label').map(function() {
return this.innerHTML;
})
Run Code Online (Sandbox Code Playgroud)
以上将<label>
用户列表中的元素转换为其中包含的文本.然后我可以这样做:
alert('The following users are still logged in: ' + usernames.join(', '));
Run Code Online (Sandbox Code Playgroud)
Map是一个高阶函数,它使您能够将某个函数应用于给定序列,生成一个新的结果序列,其中包含每个原始元素的值以及所应用函数的值.
我经常用它来获取我所有jQuery UI面板的有效选择器,例如:
var myPanels = $('a').map(function() {
return this.hash || null;
}).get().join(',');
Run Code Online (Sandbox Code Playgroud)
这将返回当前页面中可用面板的逗号分隔字符串,如下所示:
"#home,#publish,#request,#contact"
Run Code Online (Sandbox Code Playgroud)
这是一个可以使用的有效选择器:
$(myPanels);// do something with all the panels
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
34611 次 |
最近记录: |