jQuery过滤函数
来源:互联网 发布:怎样避免京东二手知乎 编辑:程序博客网 时间:2024/06/05 21:12
在前面介绍了许多功能实用的选择器,jQuery在此基础上还拓展了许多功能函数,这些函数作为jQuery对象的方法直接实用,这样就能够在选择器的基础上更加精确地控制对象。请注意:筛选函数与选择器在用法上是不同的。例如,在下面这个列表结构中。
- <span style="font-family:SimSun;font-size:12px;"> <ul>
- <li>1</li>
- <li>2</li>
- <li>3</li>
- </ul></span>
如果要设置第二个列表项的字体颜色为红色,可以用选择器进行选择
- <span style="font-family:SimSun;font-size:12px;">$("li:eq(1)").css("color","red");
- </span>
而如果使用过滤函数,则可以使用如下方法来实现
- <span style="font-family:SimSun;font-size:12px;">$("li").eq(1).css("color","red");
- </span>
选择器是构建jQuery对象的基础,而过滤函数则是jQuery对象的成员,用法截然不同,jQuery定义的过滤函数如下表所示:
说明:
1、find() 和 filter()两者的区别
简单的说就是find()是在jQuery对象集合的所有的子元素中查找,而filter()是在jQuery对象集合中查找。
还有就是两者参数的区别,find()需要的参数是且只是jQuery选择器的表达式,而filter()的参数可以是jQuery选择器的表达式,也可以是多个jQuery选择器的表达式并列,中间用逗号隔开(逻辑或的关系),filter()参数也可以是一个函数,调用函数时自动传入index参数(jQuery对象集合的长度),函数需返回true或者false来选中或者排除元素。看个例子就明白两者的用法了:
实例3-1:
- <span style="font-family:SimSun;font-size:12px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- <title>Document</title>
- <script src="jquery-2.1.0.min.js" type="text/javascript"></script>
- <script>
- $(function(){
- $('#btn1').click(function(){
- alert('这样的jQuery对象有'+$('div').find('.test').length+'个')
- });
- $('#btn2').click(function(){
- alert('这样的jQuery对象有'+$('div').filter('.test').length+'个');
- });
- $('#btn3').click(function(){
- alert('这样的jQuery对象有'+$('div').filter('.last').length+'个');
- });
- $('#btn4').click(function(){
- alert('这样的jQuery对象有'+$('div').filter('.test,.last').length+'个');
- });
- $('#btn5').click(function(){
- alert('这样的jQuery对象有'+$('div').filter(function(index){
- return $(this).hasClass("haha");//检查当前元素是否含有haha类
- }).length+'个')
- })
- });
- </script>
- </head>
- <body>
- <input type="button" value="test-find" id="btn1" />
- <input type="button" value="test-filter" id="btn2" />
- <input type="button" value="test-filter" id="btn3" />
- <input type="button" value="test-filter" id="btn4" />
- <input type="button" value="test-filter" id="btn5" />
- <div class="first">
- first content
- <span class="test">
- test content
- </span>
- <span class="test">
- test1 content
- </span>
- </div>
- <div class="last">
- last
- <span class="test">
- last test content
- </span>
- </div>
- <div class="last">
- last
- <span>
- last no test content
- </span>
- </div>
- <div class="haha">
- </div>
- </body>
- </html>
- </span>
2、map和each的区别
$.map(array,fn(value))的作用是将一个数组转换成另一个数组,循环传递数组内的每个元素(value)进行处理,将所有的返回值组成一个新的数组。
特别需要注意的是.$map()不能处理json格式的数组。
$.each(array,fn(value))的作用是循环处理数组中的各个元素,也就是相当于java中的for循环,它没有返回值。它可以处理json格式的数组。
分别看一下例子就了解这两个函数的区别了
实例3-2 $.map()例子:
- <span style="font-family:SimSun;font-size:12px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html>
- <head>
- <title>$.map()函数</title>
- <script src="jquery-2.1.0.min.js" type="text/javascript"></script>
- <script language="javascript">
- $(function(){
- var aArr = ["a", "b", "c", "d", "e"];
- $("p:eq(0)").text(aArr.join());
- aArr = $.map(aArr,function(value,index){
- //将数组转化为大写并添加序号
- return (value.toUpperCase() + index);
- });
- $("p:eq(1)").text(aArr.join());
- aArr = $.map(aArr,function(value){
- //将数组元素的值双份处理
- return value + value;
- });
- $("p:eq(2)").text(aArr.join());
- });
- </script>
- </head>
- <body>
- <p></p><p></p><p></p>
- </body>
- </html></span>
实例3-3 $,each例子:
- <span style="font-family:SimSun;font-size:12px;"> var arr = { "tom": "汤姆", "jerry": "杰瑞", "lily": "莉莉" };//json格式的对象(dict)
- $.each(arr, function(key, value) { alert(key+"="+value); });</span>
3、not()用法 需要参数为jQuery选择器的表达式
例如,要从jQuery对象集合中删除id为seleced的
- <span style="font-family:SimSun;font-size:12px;">$("p").not("#selected")</span>
4、slice(start,[end])
根据下标选取匹配的子集
实例3-4:
- <span style="font-family:SimSun;font-size:12px;"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <script src="jquery-2.1.0.min.js" type="text/javascript"></script>
- <script type="text/javascript">
- $(function(){
- $("body").html($("p").slice(0, 1))
- })
- </script>
- </head>
- <body>
- <p>Hello</p><p>cruel</p><p>World</p>
- </body>
- </html>
- </span>
执行结果:Hello
- jQuery过滤函数
- jquery筛选过滤函数
- jQuery整理笔记三----jQuery过滤函数
- jQuery整理笔记三----jQuery过滤函数
- jQuery整理笔记三----jQuery过滤函数
- jQuery之$.grep()函数(数据过滤)
- jQuery过滤
- $.grep() 过滤函数 数组过滤
- jQuery 属性过滤
- JQuery表格内容过滤
- jQuery之过滤选择器
- jQuery的过滤选择器
- jquery中的过滤操作
- Jquery的过滤选择器
- jQuery过滤选择器
- jQuery内容过滤选择器
- jQuery属性过滤选择器
- jQuery基本过滤选择器
- js监听输入框值的即时变化onpropertychange、oninput
- jQuery选择器整理
- LeetCode: First Missing Positive [040]
- 台湾“奇葩”租屋广告:限单身女性 胸要大(图)
- MySQL空间数据库采用勾股定律,查询点到多点间的最短路径
- jQuery过滤函数
- navagationcontroller pop 回去的时候带返回参数
- 内存分配及堆与栈的区别
- Maven:仓库
- Memcached、AOP
- 自定义视图
- Oracle sqlplus中常用的set命令
- 在项目中使用打包的静态库
- iOS学习之iOS沙盒(sandbox)机制和文件操作(一)