十五、查找函数——找到目标对象。串联函数——

系统 1585 0

查找函数的作用是从集合内再次查找匹配的元素,查找函数和过滤函数有时候是可以替换的。

查找函数列表:

名称

说明

举例

add(expr)

expr 可以是选择器表达式、 DOM 对象、 jQuery 对象、集合或者 HTML 字符串。如果是 HTML 字符串则会动态创建对象并添加到 jQuery 对象集合中

$(“p”).add(“<span>Again</span>”)

动态的生成一个元素,并添加到匹配的元素中。

children([expr])

取得 jQuery 对象集合中所有匹配满足表达式的 直接子元素 。省略 expr 参数表示选择所有直接子元素。注意: parents() 将查找所有祖辈元素,而 chlidren() 只考虑子元素而不考虑所有后代元素

$(“div”).children()

查找 div 中的每个直接子元素

closest([expr])

jQuery1.3 新增。从元素本身开始,逐级向上级元素匹配,并返回最先匹配的元素。

closest 会首先检查当前元素是否匹配,如果匹配则直接返回元素本身。如果不匹配则向上查找父元素,一层一层往上,知道找到匹配选择器的元素。如果什么都没找到则返回一个空的 jQuery 对象。 closest 对于处理事件委派非常有用。

$(documnet).bind(“click”,function(e){

$(e.target).closest(“li”).toggleClass(“hilight”)

});

为事件源最近的父类 li 对象更换样式

contents()

查找匹配元素内部所有的子结点( 包括文本结点 )。如果元素是一个 iframe ,则查找文档内容

$(“p”).contents().not(“[nodeType=1]”).wrap(“<br>/”);

查找所有文本结点并加粗。

find(expr)

搜索所有与指定表达式匹配的元素。这个函数是找出正在处理元素的后代元素的好方法。所有搜索都依靠 jQuery 表达式来完成。这个表达式可以使用 CSS1-3 的选择器语法来写

从所有的段落开始,进一步搜索下面的 span 元素。

$(“p span”) 相同: $(“p”).find(“span”)

next([expr])

取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合。这个函数只返回后面那个紧邻的同辈元素,而不是后面所有的同辈元素 (nextAll) 。可以用一个可选的表达式进行筛选

找到每个段落后面紧邻的同辈元素:

$(“p”).next()

offsetParent

返回第一个有定位的父类比如 (relative absolute)

 

parent([expr])

取得一个包含着所有匹配元素的唯一父元素的元素集合。

可以使用筛选的表达式来筛选

查找每个段落的父元素

$(“p”).parent()

parents([expr])

取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通过一个可选的表达式进行筛选

找到每个 span 元素的所有祖先元素

$(“span”).parents()

prev([expr])

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

可以用一个可选的表达式进行筛选。只有紧邻的同辈元素会被匹配到,而不是前面所有的同辈元素

找到每个段落紧邻的前一个同辈元素

$(“p”).prev()

prevAll([expr])

查找当前元素之前所有的同辈元素,可以用表达式过滤

给最后一个之前的所有的 div 加上一个类:

$(“div”).prevAll().addClass(“before”);

siblings([expr])

取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合。可以用可选的表达式进行筛选。

找到每个 div 的所有同辈元素

$(“div”).siblings()

 

这张表看起来很烦,心里都很烦,find会常用吧。其他也不知道是不是能用上。不过既然有总是好的,也是有需要人家才开发的。希望以后深入使用可以体会到好处。

 

使用Traversing分类中的过滤和查找,会改变jQuery对象集合。串联函数的作用就是找回或合并这些变更。

串联函数的清单:

名称

说明

举例

andSelf()

将先前所选的元素加入到当前元素中。对于筛选或查找后的元素,要加入先前所选元素将会很有用

选取所有 div 及内部的 p ,并加上 border

$(“div”).find(“p”).andSelf().addClass(“border”);

end()

回到最近的一个“破坏性”操作之前,即将匹配的元素列表变为前一次的状态。

如果之前没有破坏性操作,则返回一个空集。所谓的“破坏性”就是指任何改变所匹配的 jQuery 元素的操作。这包括在 Traversing 中返回任何一个 jQuery 对象的函数 -add,andSelf,

children,filter,find,map,next,nextAll,not,,

parent,parents,prev,prevAll,siblings,slice 再加上 Manipulation 中的 clone,appendTo,prependTo,insertBefore,

insertAfter,replaceAll

选取所有的 p 元素,查找并选取 span 子元素,然后再反过来选取 p 元素:

$(“p”).find(“span”).end();

 

andSelf()函数是不能同时使用两次的,第二次调用是没有效果的。

end()函数是可以多次调用的。

end()函数可以恢复一次破坏性操作。提供end()函数主要是为了能够在jQuery链式操作上执行更多的操作。

十五、查找函数——找到目标对象。串联函数——操作对象链


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论