jquery的closest方法的使用以及其与parents方法之间的差异

closest会首先检查当前元素是否匹配,如果匹配则直接返回元素本身。如果不匹配则向上查找父元素,一层一层往上,直到找到匹配选择器的元素。如果什么都没找到则返回一个空的jQuery对象。closest和parents的主要区别是:1,前者从当前元素开始匹配寻找,后者从父元素开始匹配寻找;2,前者逐级向上查找,直到发现匹配的元素后 就停止了,后者一直向上查找直到根元素,然后把这些元素放进一个临时集合中,再用给定的选择器表达式去过滤;3,前者返回0或1个元素,后者可能包含0 个,1个,或者多个元素。

1.7以后的版本不建议使用该函数

clostest来完成事件委托实例:

<ul>
    <li><b>Click me!</b></li>
    <li>You can also <b>Click me!</b></li>
</ul>
$(document).bind("click", function (e) {
    $(e.target).closest("li").toggleClass("hilight");
});
时间: 2024-10-13 11:05:49

jquery的closest方法的使用以及其与parents方法之间的差异的相关文章

jquery中使元素显示和隐藏方法之间的区别

在实际的项目开发中,要使一个元素隐藏的方法有很多,比如css的多种属性和jquery的多种方法,虽然他们的作用都是使元素不可见,但是各个方法实现的原理是不一样的.下面主要介绍jquery各个元素隐藏方法之间的区别. 1.show()和hide() 使用hide()方法隐藏元素实际上是同时减少元素的高度.宽度以及不透明度,直到这三个属性为0,最后设置元素的css属性disolay:none.show()方法从上到下增大元素的高度,从左到右增大元素的宽度,同时增加内容的不透明度,直至元素完全显示.

jQuery中ajax的使用与缓存问题的解决方法

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

JQUERY实现点击INPUT使光标移动到最后或指定位置

下面本文章给大家简单介绍一下JQUERY实现点击INPUT使光标移动到最后或指定位置例子,希望对各位有帮助,你要知道面对一个 处女座的 需求者, focus()是远远不够的,比如说“我点进去的时候光标要在最后,这样我就不用再把光标移动到最后去添加东西了.”,oh,让我先撞下墙. 我们需要扩展jQuery,代码如下: //光标放在最后 $("#文本框ID").textFocus();光标放在第二个字符后面 $("#文本框ID").textFocus(2); (func

jquery升级到新版本报错[jQuery] Cannot read property ‘msie’ of undefined错误的解决方法(转)

最近把一个项目的jQuery升级到最新版,发现有些页面报错Cannot read property 'msie' of undefined.上jQuery网站上搜了一下,原因是$.browser这个api从jQuery1.9开始就正式废除,js代码里只要用到$.browser就会报这个错.具体说明参见jQuery官方说明. 楼主顺便扩展阅读了一下,发现jQuery· 1.9之后的版本把所有在早期版本里标记为deprecated的api都正式删除了,不再向后兼容.对于升级到最新jQuery的童鞋而

JQuery的$和其它JS发生冲突的快速解决方法

众所周知,jQuery是目前最流行的JS封装包,简化了很多复杂的JS程序,JQuery讲浏览器DOM树定义为$,通过$来获取各个子节点. 然后,JS插件并非只有JQuery,还有prototype.js 等其它比较好的插件.它们也使用$.所以有时候同时使用这个两个JS插件的时候,就会出现$的使用权冲突问题.现在我们来看看如何解决这个冲突问题.请看下文: 我们都知道JQuery有一个函数,jquery.noConflict() 它的作用是讲$的控制权转让出去.然后我们可以通过jQuery代替$来获

jQuery_review之使用jQuery的Ajax必须知道的,serialize、param方法以及全局函数

在项目中可能会碰到这样的几个问题: 第一个问题,我们需要实现一个基于ajax的异步程序,我们也相当的熟悉ajax中是可以通过{name:name,address:address}这种方式来进行传递参数的.但是,当任务下达的那一刻,我们发现前端的form表单非常的庞大,庞大的我没有耐心去一个一个的拼字符串. 第二个问题,我们需要将一个充满的checkbox的用户调查表传递给后台,额,难道需要我们写一个过滤器,然后通过each进行遍历,然后拼成这样的一个参数表么?如果你对jQuery的选择器比较了解

[jQuery] Cannot read property ‘msie’ of undefined错误的解决方法 --转

初用Yii的srbac模块.出现 Cannot read property ‘msie’ of undefined 错误.上网查询,找到如下的文章.使用文末的打补丁的方法,成功搞定.感谢. =============================== http://blchen.com/jquery-can-not-read-property-msie-of-the-undefined-error-solution/ 最近把一个项目的jQuery升级到最新版,发现有些页面报错Cannot re

jQuery的parent()和parents()方法的用法和区别

parent()和parents()方法的用法和区别:这两个方法的作用有点类似,都可以取得父级元素,但是并非完全相同,下面结合实例简单介绍一下它们的区别.先从概念入手:1.parent()方法可以取得匹配元素的第一级父元素的集合,也就是说它获得并非匹配元素的所有祖先元素,而仅仅是父元素.2.parents()方法可以取得匹配元素的所有祖先元素(不包含根元素),而不仅仅是第一级父元素.下面看一段代码实例: <!DOCTYPE html> <html> <head> <

jquery中closest()parent() parents 区别

parent是找当前元素的第一个父节点,不管匹不匹配都不继续往下找 parents是找当前元素的所有父节点  closest() 是找当前元素的所有父节点 ,直到找到第一个匹配的父节点 parent().parents()与closest()方法两两之间有类似又有不同,本篇简短的区分一下这三个方法.通过本篇内容,大家将会在以后使用.parent().parents()和closest()时不会显得无从下手. 我们直接看例子来来说明一下这三个方法的使用区别: [html] view plain c