JQuery的find()方法与filter()方法对于初学者来说容易混淆,在这里对这两个方法通过一个小例子来进行比较和说明,旨在了解这两种方法的区别。
一.find使用
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>find使用</title> <script src="lib/jquery/jquery-1.9.1.js"></script> </head> <body> <div class="css"> <p class="rain">测试1</p> </div> <div class="rain"> <p>测试2</p> </div> <script type="text/javascript"> $("div").find(".rain").css('color', '#FF0000'); //等价于:$("div .rain").css('color','#ff0000'); //也等价于:$(".rain","div").css('color','#ff0000'); </script> </body> </html>
运行结果:
问题:这里为什么“测试2”不变为红色?
find() 方法定义:它是获得当前元素集合中每个元素的后代,通过选择器、jQuery 对象或元素来筛选。find()方法要注意的地方:find()方法是在当前元素集合内部查找,不包括自己。
上面例子中$("div")包含两个元素,第一个元素符合要求,但第二个元素div本身的class虽然是"rain",但其内部没有class=rain,所以不符合。
二.filter使用
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>filter使用</title> <script src="lib/jquery/jquery-1.9.1.js"></script> </head> <body> <div class="css"> <p class="rain">测试1</p> </div> <div class="rain"> <p>测试2</p> </div> <script type="text/javascript"> $("div").filter(".rain").css('color', '#FF0000'); </script> </body> </html>
运行结果:
filter()方法定义:filter() 方法将匹配元素集合缩减为指定选择器的元素。意思就是对匹配元素的集合,用选择器测试每个元素本身(不是后代),符合选择器的元素包含在集合中,不符合的去掉(选择器就是起过滤作用),形成一个新的结果集。
在上面例子中:find()会在div元素内部(后代)寻找 class为rain 的元素。而filter()则是筛选div的class为rain的元素。一个是对它的子集操作,一个是对自身集合元素筛选。
再看两个w3school上filter()方法的例子:
例一:
<!DOCTYPE html> <html> <head> <style> div { width: 60px; height: 60px; margin: 5px; float: left; border: 2px white solid; } </style> <script type="text/javascript" src="lib/jquery/jquery-1.9.1.js"></script> </head> <body> <div></div> <div class="middle"></div> <div class="middle"></div> <div class="middle"></div> <div class="middle"></div> <div></div> <script> $("div").css("background", "#c8ebcc") .filter(".middle") .css("border-color", "red"); </script> </body> </html>
运行结果:
例二:
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="lib/jquery/jquery-1.9.1.js"></script> </head> <body> <ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> <li>list item 6</li> </ul> <script> $('li').filter(':even').css('background-color', 'red'); </script> </body> </html>
运行结果:
使用filter()方法的第二个形式是,通过函数而不是选择器来筛选元素。对于每个元素,如果该函数返回 true,则元素会被包含在已筛选集合中;否则,会排除这个元素。实例如下:
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="lib/jquery/jquery-1.9.1.js"></script> </head> <body> <ul> <li><strong>list</strong> item 1 - one strong tag</li> <li><strong>list</strong> item <strong>2</strong> - two <span>strong tags</span> </li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> <li>list item 6</li> <li><strong>list item 8 </strong> - one strong tag</li> </ul> <script> $('li').filter(function(index) { return $('strong', this).length == 1; }).css('background-color', 'red'); </script> </body> </html>
运行结果:
相关推荐
Jquery 学习与实例Jquery 学习与实例Jquery 学习与实例Jquery 学习与实例Jquery 学习与实例Jquery 学习与实例Jquery 学习与实例Jquery 学习与实例Jquery 学习与实例Jquery 学习与实例Jquery 学习与实例Jquery 学习与...
jquery经典实例60例-动画实例 jquery经典实例60例-动画实例 jquery经典实例60例-动画实例
jquery 实例jquery 实例jquery 实例jquery 实例jquery 实例jquery 实例
本文实例讲述了jQuery中find()方法用法。分享给大家供大家参考。具体分析如下: 此方法获得匹配元素集合中所有元素的子元素,并通过选择器、jQuery 对象或元素删选。 find()方法是获取匹配元素后代元素的好方法。 ...
jquery 实例jquery 实例jquery 实例jquery 实例jquery 实例jquery 实例jquery 实例jquery 实例
jquery表格操作实例jquery表格操作实例jquery表格操作实例jquery表格操作实例
jquery 时间控件实例jquery 时间控件实例jquery 时间控件实例jquery 时间控件实例jquery 时间控件实例
50个Jquery经典实例 50个Jquery经典实例 50个Jquery经典实例 50个Jquery经典实例
jquery中ajax的用法实例 关于Jquery异步刷新的代码实例
主要介绍了Jquery中find与each方法用法,实例分析了find与each方法的功能、定义与使用技巧,需要的朋友可以参考下
50个Jquery经典实例50个Jquery经典实例
jquery实例教程jquery实例教程jquery实例教程jquery实例教程jquery实例教程
最新JQuery UI 1.8.2 内含实例及Jquery 1.4.2, JQuery UI 1.8 实例 JQuery 1.4.2
参照《jQuery完全攻略》亲自手打并测试的100多个实例(部分实例来自网络如消息框、tooltip、面包屑式菜单、层级菜单以及一些jQuery插件的用法)。 主要分为: jQuery操作DOM节点、数组和字符串 jQuery表单验证 ...
主要介绍了jQuery中filter()方法用法,实例分析了filter()方法的功能、定义及筛选的几种使用技巧,需要的朋友可以参考下
教程名称:jQuery实例视频教程课程目录:【】jQuery实例-商城放大镜效果【】jQuery实例-图片放大效果【】jQuery实例-图片转动立体效果【】jQuery实例-对联广告【】jQuery实例-返回顶部(解决IE6固定定位)【】jQuery...
jquery应用实例 jquery应用实例 jquery应用实例
jQuery实例-信息提示jQuery实现 jQuery实例-信息提示jQuery实现