jQuery编程中的一些核心方法简介


Posted in Javascript onAugust 14, 2015

调用 jQuery 对象的方法很简单:

$('h1').remove();

大多数 jQuery 方法都是像上面这样被调用的,这些方法都位于 $.fn 命名空间内,这些方法称为 jQuery 对象方法。

但是也有一些方法不需要依赖于选择器的结果集,这些方法位于 jQuery 命名空间内,这些方法称为 jQuery 核心方法。如果觉得不好理解,记住下面两条即可:

  1.     所有 jQuery 选择器的方法都位于 $.fn 命名空间内。
  2.     $ 内的方法一般都是一些实用的功能性方法,这些方法不依赖选择器,这些方法的参数和返回值也都大不相同。

有些对象方法跟核心方法的名称还会相同,例如 $.fn.each 和 $.each,使用的时候需要格外注意。

jQuery 的 $ 命名空间中提供了很多实用方法:

去除字符串两遍的空白:

$.trim('  lots of extra whitespace  ');
// 返回 'lots of extra whitespace'

对数组和对象进行迭代:

$.each([ 'foo', 'bar', 'baz' ], function(idx, val) {
  console.log('element ' + idx + 'is ' + val);
});

$.each({ foo : 'bar', baz : 'bim' }, function(k, v) {
  console.log(k + ' : ' + v);
});

返回数组中某元素的索引,如果元素不存在则返回 -1

var myArray = [ 1, 2, 3, 5 ];

if ($.inArray(4, myArray) !== -1) {
  console.log('找到了');
}

用一个对象去扩展另外一个对象:

var firstObject = { foo : 'bar', a : 'b' };
var secondObject = { foo : 'baz' };

var newObject = $.extend(firstObject, secondObject);
console.log(firstObject.foo); // 'baz'
console.log(newObject.foo);  // 'baz'

如果不想改变第一个对象中的值,在 $.extend 的第一个参数中传入一个空对象即可:

var firstObject = { foo : 'bar', a : 'b' };
var secondObject = { foo : 'baz' };

var newObject = $.extend({}, firstObject, secondObject);
console.log(firstObject.foo); // 'bar'
console.log(newObject.foo);  // 'baz'

改变函数的作用域:

var myFunction = function() { console.log(this); };
var myObject = { foo : 'bar' };

myFunction(); // logs window object

var myProxyFunction = $.proxy(myFunction, myObject);
myProxyFunction(); // logs myObject object

再结合事件看如何改变函数的作用域:

var myObject = {
  myFn : function() {
    console.log(this);
  }
};

$('#foo').click(myObject.myFn); // logs DOM element #foo
$('#foo').click($.proxy(myObject, 'myFn')); // logs myObject

JavaScript 本身有类型检测的方法,jQuery 中也有,并且做得更好:

var myValue = [1, 2, 3];

// 用 JavaScript 的 typeof 操作符来判断类型
typeof myValue == 'string'; // false
typeof myValue == 'number'; // false
typeof myValue == 'undefined'; // false
typeof myValue == 'boolean'; // false

// 用恒等于 检测 null
myValue === null; // false

// 使用 jQuery 的方法来判断类型
jQuery.isFunction(myValue); // false
jQuery.isPlainObject(myValue); // false
jQuery.isArray(myValue); // true

向 HTML 元素添加额外的数据:

$('#myDiv').data('keyName', { foo : 'bar' });
$('#myDiv').data('keyName'); // { foo : 'bar' }

所要添加的数据可以是任意类型:

$('#myList li').each(function() {
  var $li = $(this), $div = $li.find('div.content');
  $li.data('contentDiv', $div);
});

// 不需要再去找那些 div 了;
// 可以直接从 list 中读取出来
var $firstLi = $('#myList li:first');
$firstLi.data('contentDiv').html('new content');

Javascript 相关文章推荐
让网页跳转到指定位置的jquery代码非书签
Sep 06 Javascript
TypeError document.getElementById(...) is null错误原因
May 18 Javascript
JavaScript简单修改窗口大小的方法
Aug 03 Javascript
在页面中输出当前客户端时间javascript实例代码
Mar 02 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
Mar 05 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
Nov 18 Javascript
实例解析jQuery中如何取消后续执行内容
Dec 01 Javascript
浅谈键盘上回车按钮的js触发事件
Feb 13 Javascript
JS回调函数基本定义与用法实例分析
May 24 Javascript
vue axios请求拦截实例代码
Mar 29 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
Dec 03 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
Apr 24 Javascript
CSS图片响应式 垂直水平居中
Aug 14 #Javascript
js实现选中复选框文字变色的方法
Aug 14 #Javascript
avalon js实现仿微博拖动图片排序
Aug 14 #Javascript
javascript实现显示和隐藏div方法汇总
Aug 14 #Javascript
freemarker判断对象是否为空的方法
Aug 13 #Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
Aug 13 #Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
Aug 13 #Javascript
You might like
PHP爆绝对路径方法收集整理
2012/09/17 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
php实现scws中文分词搜索的方法
2015/12/25 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
js获取select选中的option的text示例代码
2013/12/19 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
JS打开新窗口防止被浏览器阻止的方法
2015/01/03 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
vue实现文章内容过长点击阅读全文功能的实例
2017/12/28 Javascript
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
2018/08/20 Javascript
深入理解 Koa 框架中间件原理
2018/10/18 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
Python实现XML文件解析的示例代码
2018/02/05 Python
python3.6的venv模块使用详解
2018/08/01 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
用C#语言写出在本地创建一个UDP接收端口的具体过程
2016/02/22 面试题
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
2013/04/24 面试题
公积金转移接收函
2014/01/11 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
网络营销计划书
2015/01/17 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
上班旷工检讨书
2015/08/15 职场文书
react antd实现动态增减表单
2021/06/03 Javascript
2022漫威和DC电影上映作品
2022/04/05 欧美动漫