这篇看了jQuery.map,jQuery().map,jQuery.grep,jQuery.merge。
1,jQuery.map
该方法是挂在functoin jQuery上静态方法,通过jQuery.extend({...})方式扩展的。作用是数组(伪数组)每个元素上运行一个函数,返回新修改的数组。
见:http://api.jquery.com/jQuery.map/
2,jQuery().map
该方法是jquery对象的一个方法,和jQuery().each一样挂在jQuery.prototype上的。其调用静态的jQuery.map,第一个参数是tihs,该this即为jquery对象自身。它只能对jQuery对象进行修改。
见:http://api.jquery.com/map/
3,jQuery.grep
该方法是挂在function jQuery上的静态方法,通过jQuery.extend({...})方式扩展的。作用是过滤数组。
见:http://api.jquery.com/jQuery.grep/
4,jQuery.merge
该方法是挂在function jQuery上的静态方法,通过jQuery.extend({...})方式扩展的。作用是合并两个数组,第一个参数数组会被修改。
见:http://api.jquery.com/jQuery.merge/
简化如下:
function $(selector){
return new $.prototype.init(selector);
}
$.fn=$.prototype={
//简化的选择器,为测试$().each方法。这里只需返回一个element集合即可
init:function(selector){
var els = document.getElementsByTagName(selector);
for(var i=0;i<els.length;i++){
this[i]=els[i];
}
this.length=els.length;
},
//$().each,调用静态的$.each
each:function(callback){
return $.each( this, callback );
},
//$("p").map,调用静态的$.map
map: function( callback ) {
return $.map(this, function( elem, i ) {
return callback.call( elem, i, elem );
});
}
}
$.fn.init.prototype=$.fn;
//简化的extend
$.extend = function(obj){
for(var a in obj)
this[a] = obj[a];
};
//给$上添加一些静态方法
$.extend({
//简化的$.each,可以迭代数组和对象
each : function(object,callback){
var name, i = 0,
length = object.length,
isObj = length === undefined;
if ( isObj ) {//对对象进行迭代
for ( name in object ) {
if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
break;
}
}
} else {//对数组进行迭代
for ( var value = object[0];
i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {}
}
},
//合并两个数组,会改变first
merge: function( first, second ) {
var i = first.length, j = 0;
if ( typeof second.length === "number" ) {
for ( var l = second.length; j < l; j++ ) {
first[ i++ ] = second[ j ];
}
} else {
while ( second[j] !== undefined ) {
first[ i++ ] = second[ j++ ];
}
}
first.length = i;
return first;
},
//数组每个元素上运行一个函数,返回新修改的数组
map: function( elems, callback ) {
var ret = [], value;
for ( var i = 0, length = elems.length; i < length; i++ ) {
value = callback( elems[ i ], i );
if ( value != null ) {
ret[ ret.length ] = value;
}
}
return ret.concat.apply( [], ret );
},
//过滤数组
grep: function( elems, callback, inv ) {
var ret = [];
for ( var i = 0, length = elems.length; i < length; i++ ) {
if ( !inv !== !callback( elems[ i ], i ) ) {
ret.push( elems[ i ] );
}
}
return ret;
}
});
分享到:
相关推荐
而"源码"和"工具"这两个标签暗示了这篇博客可能还会深入到jQuery的内部工作原理,并提供实用的代码示例,帮助读者更好地理解和运用这些功能。遗憾的是,由于没有给出具体的博客内容,我们无法提供更详细的分析,但...
2. **扩展函数**:jQuery提供了很多实用的辅助函数,如`.trim()`, `.map()`, `.grep()`, `.inArray()`, 等。在原生JavaScript中,我们可以使用ES6的扩展,或者自定义这些函数。 总结起来,从jQuery转向原生...
资源特点:代码非常短)、易读性强、重点注释、方便扩展、样式美观、使用JQ框架。 适用人群:前端从业职,新手小白,有网站开发能力对美工有所欠缺的后端工程师。 提示:------------------------------------------...
自己收集的一些Jsp jQuery编程实例集,都是挺简单的,可作为Ajax学习的起步资料,在JSP环境下使用jquery实现Ajax功能的新手...里面一共包括7个例子,有结合数据库的,对于实现数据库的无刷新读娶修改有一定示范作用。
通过使用jQuery,开发者可以更高效地编写出简洁、易读的代码,减少浏览器兼容性问题,提升网页性能。 在“jQuery商品分类选择”插件中,它利用jQuery的事件处理机制,为用户提供多种选择商品的方式,如单选、多选、...
本文将详细介绍如何利用JavaScript(简称JS)、jQuery(简称JQ)以及CSS来实现一个简易的下拉菜单功能。 #### 一、CSS基础实现 ##### HTML结构 首先,我们需要构建基本的HTML结构。以下是一个简单的示例: ```...
全屏响应式jQuery日历插件是Web开发中一种实用的工具,尤其在现代多设备兼容性需求日益增长的背景下,这种插件的重要性不言而喻。jQuery库因其易用性和丰富的功能,已经成为Web开发中不可或缺的部分,而这款基于...
在"jQuery+CSS3响应式线条滑出图片列表"中,网页布局会自动适应手机、平板电脑或桌面电脑等不同设备的屏幕大小,确保图片列表始终清晰、易读。 **线条滑出效果** 线条滑出效果通常是由CSS3的动画功能实现的。通过...
**jQuery Switch 按钮插件详解** 在Web开发中,按钮组件是用户界面不可或缺的一部分,尤其是开关(Switch)按钮,...同时,HoneySwitch的灵活性和可扩展性使得它能适应各种设计需求,是现代Web开发中的一个实用工具。
总的来说,`jquery 导出excel tableExport` 是一种使用 jQuery 和 tableExport 插件在前端实现 HTML 表格数据快速导出到 Excel 文件的方法,对于需要提供数据导出功能的网页应用非常实用。通过简单的配置和调用,...
`$(this).data('answer-id')`从问题元素中获取与之关联的答案ID,然后`$('#' + answerId).toggle();`用于切换相应答案的可见性。 五、CSS样式增强 为了视觉上的效果,我们可以添加一些CSS样式,例如折叠时隐藏答案...
通过使用jQuery,开发者可以编写更简洁、更易读的代码,从而提高开发效率。在本插件中,jQuery被用来控制div元素的滑动动画,使得图文内容能够按照预设的方式进行平滑切换。 div元素在HTML中是一个非常基础但又灵活...
4. **事件重叠处理**:当事件发生时间重叠时,能智能调整显示,确保清晰易读。 5. **自定义样式**:可以通过CSS进行个性化定制,适应各种网站风格。 6. **数据绑定**:可与后端数据库进行交互,实现数据的动态加载和...
"jQuery 可读取本地文件的号码选择器"是一个实用的工具,它允许用户从本地文件系统选择号码文件,并在不丢失数据的情况下进行操作。这种功能尤其适用于那些需要大量输入或管理数据的场景,比如电话营销、客户管理等...
jQuery通过提供简洁的API,使得JavaScript代码更加易读和编写。例如,`$`符号是jQuery的简写,用于选择DOM元素,相当于JavaScript中的`document.querySelector`或`document.querySelectorAll`。通过这个选择器,我们...
这种方式允许Janet程序充分利用SQLite的高性能特性,同时保持代码的简洁性和易读性。 **总结** `jqlite`是Janet语言中的一个实用工具,它为SQLite数据库提供了一种便捷的访问方式。通过这个库,开发者可以轻松地在...
Markdown是一种轻量级的标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML(超文本标记语言)文档。在Web开发中,Markdown的使用非常广泛,尤其对于内容创作者和开发者来说,它提供了...
"timeago.js" 是一个非常实用的JavaScript库,它的主要功能是将Unix时间戳或日期对象自动转换为易于人类理解的相对时间描述。这个插件的设计理念在于提升用户体验,让用户在浏览网页时能够快速理解信息的时效性,而...
【JavaScript和jQuery实现网页实时聊天的Ajax长轮询】 ...针对这一问题,开发者们提出了多种解决方案,...然而,随着技术的发展,WebSocket等更先进的实时通信技术逐渐成为首选,但长轮询仍然在许多场景下具有实用性。
总结,`jQuery.each()`函数是jQuery中非常实用的工具,它能够灵活地遍历数组、对象和DOM元素集合,使得代码更简洁、易读,是JavaScript开发中的得力助手。了解并熟练掌握`jQuery.each()`,可以提高开发效率,减少因...