jQuery实用函数用法总结


Posted in Javascript onAugust 29, 2014

本文以实例的形式总结了jQuery的常见实用函数。分享给大家供大家参考之用。具体示例如下:

1.修剪字符串

$('#id').val($.trim($('#someid').val()))
 

2.遍历集合

可能这样写:

var anArray = ['one','two'];
for(var n = 0; n < anArray.length; n++){
  
}

还有可能这样写:

var anObject = {one: 1, two: 2};
for(var p in anObject){
  
}

但有了$.each函数后,就可以这样写了:

var anArray = ['one','two'];
$.each(anArray, funtion(n, value){
  
})
var anObject = {one: 1, two: 2};
$.each(anObjct, function(name,value){
  
})

3.筛选数组

使用$.grep()方法能筛选数组。先来看grep方法的定义:

grep: function(elems, callback, inv){
  var ret = [], retVal;
  inv = !!inv;
  for(var i = 0; length = elems.length; i < length; i++){
    retVal = !!callback(elems[i],i)
    if(inv !== retVal){
      ret.push(elems[i]);
    }
  }
  return ret;
}

以上示例中:
① grep方法的第二个参数是回调函数,该回调函数接收2个参数,一个是数组的元素,一个是数组的索引。
② grep方法的第三个参数inv,默认情况下是undefined,所以!!inv为false,即inv的默认值是false

举例1:int类型数组

var arr = [1, 2, 3, 4, 5, 6];
arr = $.grep(arr, function(val, index){
  return val > 3;
})
console.log(arr);//结果是:4 5 6

如果把grep的第三个参数显式地设置为true,结果怎样呢?

var arr = [1, 2, 3, 4, 5, 6];
arr = $.grep(arr, function(val, index){
  return val > 3;
}, true)
console.log(arr);//结果是:1 2 3

可见,当把grep方法的第三个参数设置为true后,会把不符合回调函数的数组元素过滤出来。

举例2:object类型数组

var arr = [
  {
    first: "Jeffrey",
    last: 'Way'
  },{
    first: 'Allison',
    last: 'Way'
  },{
    first: 'John',
    last: 'Doe'
  },{
    first: 'Thomas',
    last: 'Way'
  };
  arr = $.grep(arr, function(obj, index){
    return obj.last === 'Way';
  });
  console.log(arr);
];

4.转换数组

使用$.map(arr, callback)为数组的每一个元素调用回调函数,并返回一个新的数组

给数组的每一个元素加1:

var oneBased = $.map([0, 1, 2, 3, 4], function(value){return value +1;})

把字符串数组转换成整型数字数组,判断数组元素是否是数字:

var strings = ['1', '2', '3','4','S','6'];
var values = $.map(strings, function(value){
  var result = new Number(value);
  return isNaN(result) ? null : result;
})

把转换后的数组合并到原先的数组中:

var chars = $.map(['this','that'], function(value){return value.split(' ')});

5.返回数组元素的索引

使用$.inArray(value, array)返回传入的值第一次出现的下标,即索引。

var index = $.inArray(2, [1, 2, 3]);

6.将对象转换成数组

$.makeArray(object)将传入类似数组的对象转换成Javascript数组。

<div>First</div>
<div>Second</div>
<div>Third</div>
<div>Fourth</div>
<script>
  var elems = document.getElementsByTagName("div");
  var arr = jQuery.makeArray(elems);
  arr.reverse();
  $(arr).appendTo(document.body);
</script>

7.得到不含重复元素的数组

使用$.unique(array)返回由原始数组中不重复的元素组成的数组。

<div>There are 6 divs in this document.</div>
<div></div>
<div class="dup"></div>
<div class="dup"></div>
<div class="dup"></div>
<div></div>
//把到所有div,get方法转换成javascript数组,总共6个div
var divs = $("div").get();
//再把3个class名为dup的div合并到前面的6个div
divs = divs.concat($(".dup").get());
alert(divs.length); //9个div
//过滤去掉重复
divs = jQuery.unqiue(divs);
alert(divs.length);//6个div

8.合并2个数组

$.merge(array1, array2)把第二个数组合并到第一个数组中,并返回第一个数组。

var a1 = [1, 2];
var a2 = [2, 3];
$.merge(a1, a2);
console.log(a1);//[1, 2, 2, 3]

9.把对象序列化成查询字符串

$.param(params)把传入的jquery对象或javascript对象转换成字符串形式。

$(document).ready(function(){
 personObj=new Object();
 personObj.firstname="John";
 personObj.lastname="Doe";
 personObj.age=50;
 personObj.eyecolor="blue"; 
 $("button").click(function(){
  $("div").text($.param(personObj));
 });
});

结果:firstname=John&lastname=Doe&age=50&eyecolor=blue

10.一些判断函数

$.isArray(o) 如果o是javascript数组,则返回true,如果是类似数组的jquery对象数组,返回false
$.isEmptyObject(o) 如果o是不包含属性的javascript对象,则返回true
$.isFunction(o) 如果o是javascript函数就返回true
$.isPlainObject(o) 如果o是通过{}或new Object()创建的对象,则返回true
$.isXMLDoc(node) 如果node是XML文档或者是XML文档中的节点,则返回true

11.判断一个元素是否包含在另外一个元素中

$.contains(container, containee)第二个参数是被包含

$.contains( document.documentElement, document.body ); // true
$.contains( document.body, document.documentElement ); // false

12.把值存储到某元素上

$.data(element, key, value)第一个是javascript对象,第二、第三个是键值。

//得到一个div的javascript对象
var div = $("div")[0];
//把键值存储到div上
jQuery.data(div, "test",{
  first: 16,
  last: 'pizza'
})
//根据键读出值
jQuery.data(div, "test").first
jQuey.data(div, "test").last

13.移除存储到某元素上的值

<div>value1 before creation: <span></span></div>
<div>value1 after creation: <span></span></div>
<div>value1 after removal: <span></span></div>
<div>value2 after removal: <span></span></div>
var div = $( "div" )[ 0 ];
//存储值
jQuery.data( div, "test1", "VALUE-1" );
//移除值
jQuery.removeData( div, "test1" );

14.绑定函数的上下文

jQuery.proxy( function, context)返回一个新的function函数,上下文是context。

$(document).ready(function(){
 var objPerson = {
  name: "John Doe",
  age: 32,
  test: function(){
   $("p").after("Name: " + this.name + "<br> Age: " + this.age);
  }
 };
 $("button").click($.proxy(objPerson,"test"));
});

以上,点击按钮,执行的是test方法,不过test方法的上下文做了设置。

15.解析JSON

jQuery.parseJSON( json )第一个参数json的类型是字符串。

var obj = jQuery.parseJSON( '{ "name": "John" }' );
alert( obj.name === "John" );

16.表达式求值

有时候,希望一段代码在全局上下文中执行,可以使用jQuery.globalEval( code )。code的类型是字符串。

function test() {
 jQuery.globalEval( "var newVar = true;" )
}
test();

17.动态加载脚本

$(selector).getScript(url,success(response,status))用来动态加载js文件,第一个参数是js的文件路径,第二个参数可选,表示获取js文件成功的回调。

$.getScript( "ajax/test.js", function( data, textStatus, jqxhr ) {
 console.log( data ); // Data returned
 console.log( textStatus ); // Success
 console.log( jqxhr.status ); // 200
 console.log( "Load was performed." );
});

相信本文所述对大家的jQuery程序设计有一定的借鉴价值。

Javascript 相关文章推荐
JavaScript中各种编码解码函数的区别和注意事项
Aug 19 Javascript
iframe里使用JavaScript控制主页转向的方法
Apr 03 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
Aug 04 Javascript
原生JS实现美图瀑布流布局赏析
Sep 07 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
Nov 23 Javascript
基于javascript制作经典传统的拼图游戏
Mar 22 Javascript
基于React实现表单数据的添加和删除详解
Mar 14 Javascript
react-router JS 控制路由跳转实例
Jun 15 Javascript
JS实现遍历不规则多维数组的方法
Mar 21 Javascript
js构建二叉树进行数值数组的去重与优化详解
Mar 26 Javascript
Promise.all中对于reject的处理方法
Aug 01 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
Dec 03 Javascript
jQuery实现异步获取json数据的2种方式
Aug 29 #Javascript
原生javascript实现的分页插件pagenav
Aug 28 #Javascript
JavaScript判断变量是对象还是数组的方法
Aug 28 #Javascript
分享一个自己动手写的jQuery分页插件
Aug 28 #Javascript
jQuery标签替换函数replaceWith()的使用例子
Aug 28 #Javascript
jQuery焦点图切换简易插件制作过程全纪录
Aug 27 #Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
Aug 27 #Javascript
You might like
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
php_pdo 预处理语句详解
2016/11/21 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
利用PHP实现开心消消乐的算法示例
2017/10/12 PHP
php实现socket推送技术的示例
2017/12/20 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
jQuery UI AutoComplete 使用说明
2011/06/20 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
2016/05/21 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
9种改善AngularJS性能的方法
2017/11/28 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
2018/05/30 Python
python中实现控制小数点位数的方法
2019/01/24 Python
基于Python打造账号共享浏览器功能
2019/05/30 Python
pyqt5 实现多窗口跳转的方法
2019/06/19 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
Pyorch之numpy与torch之间相互转换方式
2019/12/31 Python
关于TensorFlow新旧版本函数接口变化详解
2020/02/10 Python
django迁移文件migrations的实现
2020/03/31 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
结构工程研究生求职信
2013/10/13 职场文书
2014年小学教师工作总结
2014/11/10 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL