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帮助之CSS尺寸(五)outerHeight、outerWidth
Nov 14 Javascript
js中substring和substr的定义和用法
May 05 Javascript
javascript数组遍历for与for in区别详解
Dec 04 Javascript
介绍JavaScript的一个微型模版
Jun 24 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
May 25 Javascript
require.js中的define函数详解
Jul 10 Javascript
移动前端图片压缩上传的实例
Dec 06 Javascript
小程序实现列表点赞功能
Nov 02 Javascript
小程序实现列表多个批量倒计时
Jan 29 Javascript
如何基于原生javaScript生成带图片的二维码
Nov 21 Javascript
JS中this的4种绑定规则详解
Feb 04 Javascript
分享8个JavaScript库可更好地处理本地存储
Oct 12 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
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
PHP中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
7个鲜为人知却非常实用的PHP函数
2015/07/01 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
2015/04/07 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
移动端js图片查看器
2016/11/17 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
vue element项目引入icon图标的方法
2018/06/06 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
vue 自动化路由实现代码
2019/09/03 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
Pytorch转tflite方式
2020/05/25 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
生产主管岗位职责
2013/11/10 职场文书
竞选大学学委演讲稿
2014/09/13 职场文书
小兵张嘎电影观后感
2015/06/03 职场文书
nginx+lua单机上万并发的实现
2021/05/31 Servers
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS