find()和filter()的区别?

html-css016

find()和filter()的区别?,第1张

这是jQuery里常用的2个方法。

他们2者功能是完全不同的,而初学者往往会被误导。

首先 我们看.find()方法:

现在有一个页面,里面HTML代码为<div class="css">

<p class="rain">测试1</p>

</div>

<div class="rain">

<p>测试2</p>

</div>

如果我们使用find()方法:

var $find = $("div").find(".rain")

alert( $find.html() )

将会输出:

测试1

如果使用filter()方法:

var $filter = $("div").filter(".rain")

alert( $filter.html() )

将会输出:

<p>测试2</p>

也许你已经看出它们的区别了。

find()会在div元素内 寻找 class为rain 的元素。

而filter()则是筛选div的class为rain的元素。

一个是对它的子集操作,一个是对自身集合元素筛选。

另外find()其实还可以用选择器表示:

var $select = $("div .rain")

明白他们的区别了吗?

查找id为"change"里面的p标签

eq(0)指第一个

整个的意思是获取id="change"里面的第一个p标签内容

如:

<div id="change">

<p>1</p>

<p>2</p>

</div>

那么以上jquery获取到的值就是1

你没有给代码 也不知道为啥不会获取到

本着授人以鱼不如授人以渔的态度, 教你个办法

你分别在 控制台输出

console.log($("table"))

console.log($("table").find('td'))

console.log($("table").find('td').eq(0))

console.log($("table").find('td').eq(0).text())

// 你看看到底是哪一步没有获取到 dom对象 从而解决