jquery中closest()parent() parents 区别

parent是找当前元素的第一个父节点,不管匹不匹配都不继续往下找

parents是找当前元素的所有父节点 

closest() 是找当前元素的所有父节点 ,直到找到第一个匹配的父节点

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

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

[html] view plain copy

  1. <ul id="menu" style="width:100px;">
  2. <li>
  3. <ul>
  4. <li> <a href="#">Home</a> </li>
  5. </ul>
  6. </li>
  7. <li>End</li>
  8. </ul>
  9. 接下来,分别看看这三个方法:
  10. <script type="text/javascript">
  11. //点击Home时
  12. $("#menu a").click(function() {
  13. $(this).parent("ul").css("background", "yellow"); //0
  14. $(this).parent("li").parent("ul").css("background", "yellow"); //1
  15. $(this).parents("ul").css("background", "yellow"); //2
  16. $(this).closest("ul").css("background", "yellow"); //1;
  17. });
  18. </script>

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()方法在项目中的使用频率是比较大的。

时间: 2024-08-05 15:24:27

jquery中closest()parent() parents 区别的相关文章

javascript 与 jquery 中的函数调用的区别

标签:例如<input id="btn_show" type="button" onclick="show()" /> <script type="text/javascript"> $(function(){ function show(){ -- } }) function show(){ -- } </script> 注意, 此时button的点击事件不会调用jquery中的show(

Jquery中$.post()与$.get()区别

1:GET访问 浏览器 认为 是等幂的 就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配] 所以 第二次访问的时候 如果 URL字符串没变化 浏览器是 直接拿出了第一次访问的结果 POST则 认为是一个 变动性 访问 (浏览器 认为 POST的提交 必定是 有改变的) 防止 GET 的 等幂 访问 就在URL后面加上 ?+new Date();,[总之就是使每次访问的URL字符串不一样的] 设计WEB页面的时候 也应该遵守这个原则 2:谈Ajax的Get和Post的区别

jQuery 中$(this).parent().parent().remove()无效。

在写文章系统的删除功能.需要删除一行数据.在删除的页面,需要jQuery 删除一hang. 局部刷新数据. $(".del").click(function(){ var id = $(this).attr("hid"); var t = $(this).parent().parent(); var i = confirm("是否确认删除"); if(i){ $.post("<?php echo $this->createU

Jquery中$与$.fn的区别

Jquery中$与$.fn的区别 当今web开发往往离不开Jquery的使用,Jquery以其简洁的使用方式.良好的浏览器兼容性赢得了软件研发同行的青睐,作为其中的一员,自然也不例外,尽管刚开始时很排斥Jquery,今天我谈一下对Jquery中$与$.fn的认识和理解,不对地方深望指正: 1.什么是$? 答:jquery的另一种表现形式: 2.看下面的例子: 例子01: 1 <html> 2 <head> 3 <meta http-equiv="Content-Ty

jquery中attr() &amp; prop() 的区别与其实现方法

$(function(){ $('#check').attr('checked'); // undefind ???一头雾水 }) 在jquery中 attr 本来就是用来设置或者获取属性的,可是上面的方法却返回给 undefined ? 然后我尝试用 $('#check').prop('checked'); 发现可以正常运行!! 在jquery中prop是相对来说版本比较新的一个方法,乍一看它的功能好像和attr没有什么很大的差别,的确,它们都可设置或者来获取属性,比如 $('#div').a

jquery中attr()与prop()区别

我们知道jquery中获取元素属性有两种常见的方法,一个是attr()方法,这个是用的比较多的,也是我们第一个想到的.另外一个就是prop()方法了,这个方法之前很少用到,它是jquery1.6之后新增的方法.那么这两个方法都是获取属性的,那么神马区别呢?闲话不多说,下面我们就来说说. 首先从单词解释来说attr和prop分别是单词attribute和property的缩写,它们均表示"属性"的意思.下面我们看一个简单的例子. <body> <input type=&

jQuery中position()与offset()区别

使用jQuery获取元素位置时,我们会使用position()或offset()方法,两个方法都返回一个包含两个属性的对象-左边距和上边距,它们两个的不同点在于位置的相对点不同. 可以看看下边的图: 从图中我们可以大体看出两者的区别.position()获取相对于它最近的具有相对位置(position:relative)的父级元素的距离,如果找不到这样的元素,则返回相对于浏览器的距离.offset()始终返回相对于浏览器文档的距离,它会忽略外层元素. <div id="outer"

js中window.onload与jquery中$(document.ready())的区别

$(document).ready()是在DOM结构载入完后执行的,而window.onload是得在所有文件都加载完后执行的,注意区别,一个是DOM加载完,一个是所有文件加载完 耳听为虚,眼见为实.通过下面的实例可查看两者的异同(注意:aa.jpg最好是一张大容量图片) <html> <head> <script type='text/javascript' src='jquery-1.3.2.min.js'></script> <script ty

jquery中$.fn于$的区别

引子:http://blog.csdn.net/javazw123/article/details/6218603 $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效. 如扩展$.fn.abc() 那么你可以这样子:$("#div").abc(); 通常使用extend方法扩展,详细请看API. $.fx是指jquery的特效. 如果使用显示.滑动.淡入淡出.动画等. $.fx.off可以关闭动画,其实是直接显示结果. 自己也不是很理解,但是问了