parent()、parents()与closest()方法两两之间有类似又有不同,本篇简短的区分一下这三个方法。通过本篇内容,大家将会在以后使用.parent()、parents()和closest()时不会显得无从下手。

我们直接看例子来来说明一下这三个方法的使用区别:

<ul id="menu" style="width:100px;">
    <li>
        <ul>
            <li>
                <a href="#">Home</a>
            </li>
        </ul>
    </li>
    <li>End</li>
</ul>
接下来,分别看看这三个方法:

1
2
3
4
5
6
7
8
9
//点击Home时

$(
"#menu a"
).click(
function
() {

   
$(
this
).parent(
"ul"
).css(
"background"
, 
"yellow"
);    
//0

   

   
$(
this
).parent(
"li"
).parent(
"ul"
).css(
"background"
, 
"yellow"
);   
//1

   
$(
this
).parents(
"ul"
).css(
"background"
, 
"yellow"
);   
//2

   
$(
this
).closest(
"ul"
).css(
"background"
, 
"yellow"
);   
//3

   
return
false
;

});

1.parent()方法从指定类型的直接父节点开始查找,在"0"中,<a>的直接父节点是<li>所以在这里找不到<ul>父节点。在"2"中先找到了<li>,接着找到<ul>,并将它的背景色设置为yellow。parent()返回一个节点。

2.parents()方法查找方式同parent()方法类似,不同的一点在于,当它找到第一的父节点时并没有停止查找,而是继续查找,最后返回多个父节点,如在"2"中,使得id为menu的ul整个背景色变成了yellow。

3.closest()方法查找时从包含自身的节点找起,它同parents()很类似,不同点就在于它只返回一个节点如在"3"中,实现的功能同1相同。但它使得代码量减小,同"2"相比又只返回单一的一个节点。可见,closest()方法在项目中的使用频率是比较大的。

jquery学习之-查找父元素方法parent() parents() closest()的区别相关推荐

  1. jQuery常用的查找Dom元素方法

    jQuery常用的查找Dom元素方法 废话不多说,先来个总结,然后下面是demo 一. 同级节点之间的检索(检索深度N=0) next()是在兄弟节点中,往后匹配; prev()是在兄弟节点中,往前匹 ...

  2. jQuery 查找父元素

    function deletesec1Div5(obj){ $(obj).closest(".sec1-div5").remove();} 自己写的一段代码,实现了table中的全 ...

  3. jQuery学习(十)—替换方法

    jQuery学习(十)-替换方法 一. replaceAll方法 作用:用jQuery对象替换掉所有的元素 格式:元素1.replaceAll(元素2); 注意:元素2可以是jQuery对象或者选择器 ...

  4. jQuery学习(七)— append方法与appendTo方法

    jQuery学习(七)- append方法与appendTo方法 一.append方法 二.appendTo方法

  5. html添加删除元素属性,jQuery学习笔记——.attr()和.removeAttr()方法操作元素属性

    今天主要和大家一起分享一下如何使用jQuery的jQuery就可以让我们轻松的读取,添加,更改或删除一个(或多个)元素中的任何属性,在jQuery中我们可以使用下面的方法来实现:.attr():jQu ...

  6. jQuery学习3:操作元素属性和特性

    特性属性:是指DOM元素中能够和HTML元素中某个特性对应得上的属性. 下面就列出jQuery中提供的方法: 操作元素属性:each(iterator)遍历包装集里所有元素,为各元素分别调用传递进来的 ...

  7. jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要)

    JqGrid相关操作备忘 方法列表 特别推荐:怎样获取某一方某一列的值: [html] view plaincopy var rowdata=jQuery("#list").jqG ...

  8. jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要) from:jpr1990

    JqGrid相关操作备忘 方法列表 1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(js ...

  9. jQuery学习笔记06-attr及removeAttr方法的使用

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

最新文章

  1. Nginx多站点设置
  2. 让页面先发送ajax,Ajax, 了解一下
  3. JSP快速入门教程——全十讲
  4. Android Glide 加载圆形图片(绝对实用)
  5. java oauth server_Spring OAuth2 ResourceServer外部AuthorizationServer
  6. Mac OS使用技巧之十三:Finder中标记的使用
  7. Python 数据分析三剑客之 Matplotlib(四):线性图的绘制
  8. windbg-内存破坏实例分析
  9. 【Pyhton】随机漫步散点图
  10. Dubbo之Filter链原理
  11. 一步一步教你使用Jmail实现邮件的接收与发送
  12. 程序员这样面试,拿到offer的几率是非常大
  13. Android loopback(三)
  14. React-如何在jsx中自动补全标签(vscode)
  15. STM32学习记录0004——ISP串口下载
  16. 实现不同电脑共享一套鼠标键盘------ShareMouse
  17. 【前端教程】如何监控网页的卡顿?
  18. 为什么python叫爬虫_python为什么叫爬虫
  19. 枪花--DON'T CRY
  20. excel删除无尽空白行_全了!Excel批量插入空行、批量删除空行、隔行插入空行技巧...

热门文章

  1. matlab曲线拟合 最低点,Matlab曲线拟合 最小二乘法 polyfit【转】
  2. Thinking in Java方法签名
  3. 电脑入门基础教程_ARM入门最好的文章------转载一位资身工程师的入门心得
  4. java培训学费_北京Java培训班学费很贵吗,包含了哪些收费项目
  5. 服务器选购seo优化规则,网站seo优化注意事项1—域名和服务器选择
  6. 时间 '2018-08-06T10:00:00.000Z' 格式转化为本地时间(转)
  7. BZOJ 4517 组合数+错排
  8. VM虚拟机ping不通局域网其他主机的解决办法
  9. 关于gui的skinnableContainer的一点问题
  10. 【黑金原创教程】【TimeQuest】【第二章】TimeQuest模型角色,网表概念,时序报告...