博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery基础修炼圣典—DOM篇(二)jQuery遍历
阅读量:5275 次
发布时间:2019-06-14

本文共 13051 字,大约阅读时间需要 43 分钟。

1、children()方法

jQuery是一个合集对象,如果想快速查找合集里面的第一级子元素,此时可以用children()方法。这里需要注意:.children(selector) 方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈,这里可以理解为就是父亲-儿子的关系)

理解节点查找关系:

  • 1

代码如果是$("div").children(),那么意味着只能找到ul,因为div与ul是父子关系,li与div是祖辈关系,因此无法找到。

children()无参数

允许我们通过在DOM树中对这些元素的直接子元素进行搜索,并且构造一个新的匹配元素的jQuery对象

注意:jQuery是一个合集对象,所以通过children是匹配合集中每一给元素的第一级子元素

.children()方法选择性地接受同一类型选择器表达式

$("div").children(".selected")

同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式

具体的操作,请参考下边的代码:

1  2  3  4  5     
6 7
8 28 29 30 31 32

children方法()

33
34
35
    36
  • 1
  • 37
  • 2
  • 38
  • 3
  • 39
40
41
42
    43
  • 1
  • 44
  • 2
  • 45
  • 3
  • 46
47
48
49
    50
  • 1
  • 51
  • 2
  • 52
  • 3
  • 53
54
55
56 57 58 63 64 71 72 73 74
View Code

2、find()方法

jQuery是一个合集对象,如果想快速查找DOM树中的这些元素的后代元素,此时可以用find()方法,这也是开发使用频率很高的方法。这里要注意 children与find方法的区别,children是父子关系查找,find是后代关系(包含父子关系)

理解节点查找关系:

  • 1

代码如果是$("div").find("li"),此时,li与div是祖辈关系,通过find方法就可以快速的查找到了。

.find()方法要注意的知识点:

  • find是遍历当前元素集合中每个元素的后代。只要符合,不管是儿子辈,孙子辈都可以。
  • 与其他的树遍历方法不同,选择器表达式对于 .find() 是必需的参数。如果我们需要实现对所有后代元素的取回,可以传递通配选择器 '*'。
  • find只在后代中遍历,不包括自己。
  • 选择器 context 是由 .find() 方法实现的;因此,$('li.item-ii').find('li') 等价于 $('li', 'li.item-ii')。

注意重点:

.find()和.children()方法是相似的1.children只查找第一级的子节点2.find查找范围包括子节点的所有后代节点

具体的操作,请参考下边的代码

1  2  3  4  5     
6 7
8 28 29 30 31 32

find方法()

33
34
35
    36
  • 1
  • 37
  • 2
  • 38
  • 3
  • 39
40
41
42
    43
  • 1
  • 44
  • 2
  • 45
  • 3
  • 46
47
48
49
    50
  • 1
  • 51
  • 2
  • 52
  • 3
  • 53
54
55
56 57
58
59

find表达式

60
61

62 测试163 测试264

65

66 慕课网167 慕课网268

69
70
Aaron171
Aaron272
73
74
75
76 77 82 90 91 92
View Code

3、parent()方法

jQuery是一个合集对象,如果想快速查找合集里面的每一个元素的父元素(这里可以理解为就是父亲-儿子的关系),此时可以用parent()方法

因为是父元素,这个方法只会向上查找一级

理解节点查找关系:

  • 1

查找ul的父元素div, $(ul).parent(),就是这样简单的表达

parent()无参数

parent()方法允许我们能够在DOM树中搜索到这些元素的父级元素,从有序的向上匹配元素,并根据匹配的元素创建一个新的 jQuery 对象

注意:jQuery是一个合集对象,所以通过parent是匹配合集中每一给元素的父元素

parent()方法选择性地接受同一型选择器表达式

同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式

具体的操作,请参考下边的代码:

1  2  3  4  5     
6 7
8 28 29 30 31 32

parent方法()

33
34 35
36
    37
    38
  • A
  • 39
    40
  • B41
      42
    • 1
    • 43
    • 2
    • 44
    • 3
    • 45
    46
  • 47
    48
  • C
  • 49 50
51
52 53
54
    55
    56
  • A
  • 57
    58
  • B59
      60
    • 1
    • 61
    • 2
    • 62
    • 3
    • 63
    64
  • 65
    66
  • C
  • 67 68
69
70
71 72 73 74 79 80 87 88 89 90
View Code

4、parents()方法

jQuery是一个合集对象,如果想快速查找合集里面的每一个元素的所有祖辈元素,此时可以用parents()方法

其实也类似find与children的区别,parent只会查找一级,parents则会往上一直查到查找到祖先节点

理解节点查找关系:

  • 1

在li节点上找到祖 辈元素div, 这里可以用$("li").parents()方法

parents()无参数

parents()方法允许我们能够在DOM树中搜索到这些元素的祖先元素,从有序的向上匹配元素,并根据匹配的元素创建一个新的 jQuery 对象;

返回的元素秩序是从离他们最近的父级元素开始的

注意:jQuery是一个合集对象,所以通过parent是匹配合集中所有元素的祖辈元素

parents()方法选择性地接受同一型选择器表达式

同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式

注意事项:

1 .parents()和.parent()方法是相似的,但后者只是进行了一个单级的DOM树查找2  $( "html" ).parent()方法返回一个包含document的集合,而$( "html" ).parents()返回一个空集合。

具体的操作,请参考下边的代码:

1  2  3  4  5     
6 7 27 28 29 30 31

parents方法()

32
33 34
35
    36
    37
  • A
  • 38
    39
  • B40
      41
    • 1
    • 42
    • 2
    • 43
    • 3
    • 44
    45
  • 46
    47
  • C
  • 48
49
50 51
52
    53
    54
  • A
  • 55
    56
  • B57
      58
    • 1
    • 59
    • 2
    • 60
    • 3
    • 61
    62
  • 63
    64
  • C
  • 65
66
67 68
69 70 71 72 73 78 79 86 87 88
View Code

5、closest()方法

以选定的元素为中心,往内查找可以通过find、children方法。如果往上查找,也就是查找当前元素的父辈祖辈元素,jQuery提供了closest()方法,这个方法类似parents但是又有一些细微的区别,属于使用频率很高的方法

closest()方法接受一个匹配元素的选择器字符串

从元素本身开始,在DOM 树上逐级向上级元素匹配,并返回最先匹配的祖先元素

例如:在div元素中,往上查找所有的li元素,可以这样表达

$("div").closet("li')

注意:jQuery是一个合集对象,所以通过closest是匹配合集中每一给元素的祖先元素

closest()方法给定的jQuery集合或元素来过滤元素

同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个jQuery的对象

注意事项:在使用的时候需要特别注意下

粗看.parents()和.closest()是有点相似的,都是往上遍历祖辈元素,但是两者还是有区别的,否则就没有存在的意义了

  1. 起始位置不同:.closest开始于当前元素 .parents开始于父元素
  2. 遍历的目标不同:.closest要找到指定的目标,.parents遍历到文档根元素,closest向上查找,知道找到一个匹配就停止查找,parents一直查找到根元素,并将匹配的元素加入集合
  3. 结果不同:.closest返回的是包含零个或一个元素的jquery对象,parents返回的是包含零个或一个或多个元素的jquery对象

具体使用可以参考下边代码区域:

1  2  3  4  5     
6 7
8 28 29 30 31 32

closest方法()

33
34
35
    36
  • A
  • 37
  • B38
      39
    • 1
    • 40
    • 2
    • 41
    • 3
    • 42
    43
  • 44
  • C
  • 45
46
47
48
49 50 51 56 64 65 66
View Code

6、next()方法

jQuery是一个合集对象,如果想快速查找指定元素集合中每一个元素紧邻的后面同辈元素的元素集合,此时可以用next()方法

理解节点查找关系:

如下class="item-1"元素就是红色部分,那蓝色的class="tem-2"就是它的兄弟元素

  • 1
  • 2
  • 3

next()无参数

允许我们找遍元素集合中紧跟着这些元素的直接兄弟元素,并根据匹配的元素创建一个新的 jQuery 对象。

注意:jQuery是一个合集对象,所以通过next是匹配合集中每一给元素的下一个兄弟元素

next()方法选择性地接受同一类型选择器表达式

同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式

具体的操作,请参考下边的代码

1  2  3  4  5     
6 7
8 28 29 30 31 32

next方法()

33
34
35
    36
  • 1
  • 37
  • 2
  • 38
  • 3
  • 39
40
41
42
    43
  • 1
  • 44
  • 2
  • 45
  • 3
  • 46
47
48
49
    50
  • 1
  • 51
  • 2
  • 52
  • 3
  • 53
54
55
56 57 58 63 64 71 72 73 74
View Code

7、prev()方法

jQuery是一个合集对象,如果想快速查找指定元素集合中每一个元素紧邻的前面同辈元素的元素集合,此时可以用prev()方法

理解节点查找关系:

如下蓝色的class="tem-2"的li元素,红色的节点就是它的prev兄弟节点

  • 1
  • 2
  • 3

prev()无参数

取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合

注意:jQuery是一个合集对象,所以通过prev是匹配合集中每一个元素的上一个兄弟元素

prev()方法选择性地接受同一类型选择器表达式

同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式

具体的操作,请参考下边的代码:

1  2  3  4  5     
6 7
8 28 29 30 31 32

prev方法()

33
34
35
    36
  • 1
  • 37
  • 2
  • 38
  • 3
  • 39
40
41
42
    43
  • 1
  • 44
  • 2
  • 45
  • 3
  • 46
47
48
49
    50
  • 1
  • 51
  • 2
  • 52
  • 3
  • 53
54
55
56 57 58 63 64 71 72 73 74
View Code

8、siblings()方法

jQuery是一个合集对象,如果想快速查找指定元集合中每一个元素紧邻的前面后面同辈元素,此时可以用siblings()方法

理解节点查找关系:

如下蓝色的class="tem-2"的li元素,红色的节点就是它的siblings兄弟节点

  • 1
  • 2
  • 3

siblings()无参数

取得一个包含匹配的元素集合中每一个元素紧邻的前后同辈元素的元素集合

注意:jQuery是一个合集对象,所以通过siblings是匹配合集中每一个元素的前后兄弟元素

siblings()方法选择性地接受同一类型选择器表达式

同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式

具体的操作,请参考下边的代码:

1  2  3  4  5     
6 7
8 28 29 30 31 32

siblings方法()

33
34
35
    36
  • 1
  • 37
  • 2
  • 38
  • 3
  • 39
40
41
42
    43
  • 1
  • 44
  • 2
  • 45
  • 3
  • 46
47
48
49
    50
  • 1
  • 51
  • 2
  • 52
  • 3
  • 53
54
55
56 57 58 63 64 71 72 73 74
View Code

9、add()方法

jQuery是一个合集对象,通过$()方法找到指定的元素合集后可以进行一系列的操作。$()之后就意味着这个合集对象已经是确定的,如果后期需要再往这个合集中添加一新的元素要如何处理?jQuery为此提供add方法,用来创建一个新的jQuery对象 ,元素添加到匹配的元素集合中

.add()的参数可以几乎接受任何的$(),包括一个jQuery选择器表达式,DOM元素,或HTML片段引用。

简单的看一个案例:

操作:选择所有的li元素,之后需要把p元素也加入到li的合集中

  • list item 1
  • list item 3

新的p元素

处理一:传递选择器

$('li').add('p')

处理二:传递dom元素

$('li').add(document.getElementsByTagName('p')[0])

还有一种方式,就是动态创建P标签加入到合集,然后插入到指定的位置,但是这样就改变元素的本身的排列了

$('li').add('

新的p元素

').appendTo(目标位置)

具体的操作,请参考下边的代码:

1  2  3  4  5     
6 7 23 24 25 26 27

add方法()

28
29
30
    31
  • list item 1
  • 32
  • list item 2
  • 33
  • list item 3
  • 34
35

新的p元素

36
37
38
39
40 41 42 48 57 58 59
View Code

10、each()方法

jQuery是一个合集对象,通过$()方法找到指定的元素合集后可以进行一系列的操作。比如我们操作$("li").css('') 给所有的li设置style值,因为jQuery是一个合集对象,所以css方法内部就必须封装一个遍历的方法,被称为隐式迭代的过程。要一个一个给合集中每一个li设置颜色,这里方法就是each

.each() 方法就是一个for循环的迭代器,它会迭代jQuery对象合集中的每一个DOM元素。每次回调函数执行时,会传递当前循环次数作为参数(从0开始计数

所以大体上了解3个重点:

each是一个for循环的包装迭代器each通过回调的方式处理,并且会有2个固定的实参,索引与元素each回调方法中的this指向当前迭代的dom元素

看一个简单的案例

  • 慕课网
  • Aaron

开始迭代li,循环2次

$("li").each(function(index, element) {     index 索引 0,1     element是对应的li节点 li,li     this 指向的是li})

这样可以在循环体会做一些逻辑操作了,如果需要提前退出,可以以通过返回 false以便在回调函数内中止循

具体的操作,请参考下边的代码:

1  2  3  4  5     
6 7 23 24 25 26 27

each方法

28
29
30
    31
  • list item 1
  • 32
  • list item 2
  • 33
  • list item 3
  • 34
35
36
37
    38
  • list item 4
  • 39
  • list item 5
  • 40
  • list item 6
  • 41
42
43
44 45
46 47 48 58 69 70 71
View Code

 

转载于:https://www.cnblogs.com/Qian123/p/5577402.html

你可能感兴趣的文章
How to not show unnecessary zeros when given integers but still have float answers when needed
查看>>
xcode:关于Other Linker Flags
查看>>
PHP中文URL编解码(urlencode()rawurlencode()
查看>>
javascript按字节截取标题中字符串
查看>>
实例化bean的三种方式
查看>>
android 6.0动态权限的申请
查看>>
C++ stl 通用算法和成员函数使用
查看>>
项目管理13禁忌[转]
查看>>
关于我的几个博客
查看>>
1-4:CSS3课程入门之文本新增属性
查看>>
ubuntu php多版本共存切换
查看>>
基础的购物车程序
查看>>
php 变量未定义
查看>>
【算法30】从数组中选择k组长度为m的子数组,要求其和最小
查看>>
(笔试题)最大覆盖点
查看>>
LSI SAS 3108 配置操作
查看>>
将一个C++的AES加密算法(有向量的)翻译成C#
查看>>
关情纸尾-----UIKit基础--QQ自定义布心布局
查看>>
VS2010 使用TeeChart绘图控件 - 之二 - 绘制图形(折线图,柱状图)
查看>>
WINCC中使用ADO对象连接数据库 例子 常用属性 方法 原创
查看>>