jQuery是一个合集对象,如果想快速查找合集里面的第一级子元素,此时可以用children()方法。这里需要注意:.children(selector) 方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈,这里可以理解为就是父亲-儿子的关系)
children()**无参数**
允许我们通过在DOM树中对这些元素的直接子元素进行搜索,并且构造一个新的匹配元素的jQuery对象
**注意:jQuery是一个合集对象,所以通过children是匹配合集中每一给元素的第一级子元素**
.children()**方法选择性地接受同一类型选择器表达式**
$("div").children(".selected")
同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式
查找所有后代必须带参数
find()方法要注意的知识点:
注意重点:
.find()和.children()方法是相似的 1.children只查找第一级的子节点 2.find查找范围包括子节点的所有后代节点
查找父级,只往上查找一级用法与childern()类似
查找所有父级,一直查到祖先节点用法与children()类似
向上匹配元素,匹配成功即停止
parent,parents,closest区别:
parent是找当前元素的第一个父节点,不管匹不匹配都不继续往下找
parents是找当前元素的所有父节点
closest() 是找当前元素的所有父节点 ,直到找到第一个匹配的父节点
往下查找兄弟节点
往上查找兄弟节点
双向同时查找兄弟节点**
**
jQuery是一个合集对象,通过$()方法找到指定的元素合集后可以进行一系列的操作。$()之后就意味着这个合集对象已经是确定的,如果后期需要再往这个合集中添加一新的元素要如何处理?jQuery为此提供add方法,用来创建一个新的jQuery对象 ,元素添加到匹配的元素集合中
**.add()的参数可以几乎接受任何的$(),包括一个jQuery选择器表达式,DOM元素,或HTML片段引用。**
简单的看一个案例:
操作:选择所有的li元素,之后需要把p元素也加入到li的合集中
**<ul> <li>list item 1</li> <li>list item 3</li> </ul> <p>新的p元素</p>**
处理一:传递选择器
**$('li').add('p')**
处理二:传递dom元素
**$('li').add(document.getElementsByTagName('p')[0])**
还有一种方式,就是动态创建P标签加入到合集,然后插入到指定的位置,但是这样就改变元素的本身的排列了
$(‘li’).add(‘<p>新的p元素</p>’).appendTo(目标位置)
jQuery是一个合集对象,通过$()方法找到指定的元素合集后可以进行一系列的操作。比如我们操作$("li").css(‘’) 给所有的li设置style值,因为jQuery是一个合集对象,所以css方法内部就必须封装一个遍历的方法,被称为隐式迭代的过程。要一个一个给合集中每一个li设置颜色,这里方法就是each
.each() 方法就是一个for循环的迭代器,它会迭代jQuery对象合集中的每一个DOM元素。每次回调函数执行时,会传递当前循环次数作为参数(从0开始计数
所以大体上了解3个重点:
each是一个for循环的包装迭代器示例代码:$("button:last").click(function() {
each通过回调的方式处理,并且会有2个固定的实参,索引与元素
each回调方法中的this指向当前迭代的dom元素