- 时间:2022-09-22 04:19 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:用示例说明filter()与find()的用法以及children()与find()的区别分析
jquery的find()方法与filter()方法对于初学者来说容易混淆,在这里对这两个方法通过一个小例子来进行比较和说明。旨在了解这两种方法的区别。
[b]html代码
[/b]
[url=http://www.w3school.com.cn/tiy/t.asp?f=jquery_traversing_filter]例一[/url] [url=http://www.w3school.com.cn/tiy/t.asp?f=jquery_traversing_filter_2]例二[/url]
使用filter()方法的第二个形式是,通过函数而不是选择器来筛选元素。对于每个元素,如果该函数返回 true,则元素会被包含在已筛选集合中;否则,会排除这个元素。
[b]看一下下面的例子:[/b]
---------------------------
来自网页的消息
---------------------------
The code is in your clipboard now
---------------------------
确定
---------------------------
$('li').filter(function(index) {
return $('strong', this).length == 1;
}).css('background-color', 'red');
[b]
结果如下:[/b][img]http://files.jb51.net/file_images/article/201304/201304261359588.gif[/img]
这里在顺便说一下find()方法和children()方法的区别
find()方法上面已经说过了,在此不在熬述,下面说一下children()方法。
children,表面意思就是:孩子,儿童,子女的意思。我一般这里理解为子女或儿子。为什么这样理解?下面先看一下children的定义吧
children()方法定义:它是获得匹配元素集合中每个元素的[b]所有子元素[/b]。(不包括自己,只能在儿子辈(第一层)查找)
find() 方法定义: 它是获得当前元素集合中每个元素的[b]后代[/b],通过选择器、jQuery 对象或元素来筛选。
我理解是children是匹配集合中每个元素的“儿子辈”的子元素。find()除了儿子辈,还包括孙子辈。即只要是它的后代就行。
[b]下面通过一个例子来看看:
[/b]
<!DOCTYPE html>
<html>
<head>
<script language="JavaScript" type="text/JavaScript" src="http://lock.5186.me/js/jQuery1.6.2.js"></script>
<style>
body {font-size:16px; font-weight:bolder;}
p {margin:5px 0;}
</style>
</head>
<body>
<div>
<span>Hello</span>
<span>
<p class="selected">test</p>
</span>
<p>And One Last Time</p>
<p class="selected">again</p>
</div>
<p class="selected">Hello Again</p>
<script>$("div").children(".selected").css("color", "blue");</script>
</body>
</html>
[b]结果如下图所示: [/b]
[img]http://files.jb51.net/file_images/article/201304/201304261359589.gif[/img]