jquery中closest()与parents()的方法区别分析总结

简介: 在jquery中parents()查找父级元素删除的时候,发现它不包含根元素,于是用了closest(),效果不错,下面我给大家具体的介绍

在jquery中parents()查找父级元素删除的时候,发现它不包含根元素,于是用了closest(),效果不错,下面我给大家具体的介绍

closest

closest() 方法获得匹配选择器的第一个祖先元素,从当前元素开始沿 DOM 树向上

语法:

.closest(selector, context)

参数selector为字符串值,用以过滤匹配元素的择器表达式

参数context可选,作为待查找的 DOM 元素集或者文档

context参数

closet(selector,context)中context参数的用法:从当前元素开始遍历到context元素结束,若不存在context参数遍历到根结点;由此可见使用context参数可以提高查询效率

var listItemII = document.getElementById('ii');  //var listItemII=$(‘#ii'),这个不行,困惑好很久!
$('li.item-1').closest('ul', listItemII).css('background-color', 'red');   //结果必须是item-1的父级ul元素,itemII的子元素 
$('li.item-1').closest('#one', listItemII).css('background-color', 'green');  //item-1的id=one的元素,且必须是itemII的子元素,未找到

.parents() 和 .closest() 方法类似,它们都用于沿 DOM 树向上遍历,匹配元素的选择器字符串。两者之间的差异尽管微妙,却很重要:

.closest() .parents()
从当前元素开始 从父元素开始
沿DOM树向上遍历直到找到已应用选择器的一个匹配为止 沿DOM树向上遍历直到文档的根元素为止,将每个祖先元素添加到一个临时的集合;如果应用了选择器,则会基于该选择器对这个集合进行筛选
返回包含零个或一个元素的 jQuery 对象 返回包含零个、一个或多个元素的 jQuery 对象

先看下面的示例:演示如何通过 closest() 完成事件委托。当被最接近的列表元素或其子后代元素被点击时,会切换黄色背景

<style>
    li.hilight { background: yellow; }
</style>
<ul>
    <li><b>Click me!</b></li>
    <li>You can also <b>Click me!</b></li>
</ul>
<script>
    $( document ).bind("click", function( e ) {
    $( e.target ).closest("li").toggleClass("hilight");
  });
</script>

1、当鼠标点击“You can also”时颜色出现变化。这是因为closest是从当前元素开始向上遍历的。而不同于parents()方法,是从当前元素的父元素开始向上遍历

2、当点击Click me!时,颜色也会变化。这同样经过上面步骤,从当前元素向上匹配,只不过不符合条件,再往上时遇见了

目录
相关文章
|
3月前
|
JavaScript
jQuery追加节点方法 和height方法与width方法
jQuery追加节点方法 和height方法与width方法
|
3月前
|
JavaScript 前端开发
调用jQuery的animate()方法无法移动的问题
调用jQuery的animate()方法无法移动的问题
|
3月前
|
JavaScript 前端开发 UED
jQuery 自动刷新页面但不闪烁的实现方法
jQuery 自动刷新页面但不闪烁的实现方法
|
16天前
|
JavaScript 前端开发
jQuery 和 Zepto 的区别? 各自的使用场景?
jQuery 和 Zepto 的区别? 各自的使用场景?
10 1
|
3月前
|
JavaScript 前端开发
jQuery特效函数-第7次课-show、hide等方法有动画效果的显示和隐藏一个元素-附案例-任务
jQuery特效函数-第7次课-show、hide等方法有动画效果的显示和隐藏一个元素-附案例-任务
19 0
|
3月前
|
JavaScript 前端开发 API
jquery是什么-是否还有必要学-与JS的区别-学习技巧-文末附资料、案例、作业
jquery是什么-是否还有必要学-与JS的区别-学习技巧-文末附资料、案例、作业
37 0
|
3月前
|
JavaScript 前端开发
原生js与jQuery显示隐藏div的几种方法
原生js与jQuery显示隐藏div的几种方法
36 0
|
3月前
|
JavaScript 前端开发
|
3月前
|
JavaScript 前端开发 CDN
jQuery文件下载方法及引入HTML语法
去jQuery网站下载文件包,点击主页的“Download”之后,进入下载页面,可以选择production版本的进行下载,但是点击进去之后,浏览器并不会直接下载相关的文件,而是跳转到一个“密密麻麻”都是jQuery代码的页面,仔细查看浏览器地址栏中的url便可知,该页面其实就是jQuery的min版的文件,可以使用下面这种方法,下载jQuery文件
64 5
|
3月前
|
开发者
jQuery.Deferred 在 SAP UI5 源代码中的应用分析
jQuery.Deferred 在 SAP UI5 源代码中的应用分析
17 0