jQuery1.7和1.11区别

小近 发布于 2014/11/14 14:00
阅读 5K+
收藏 8

 作者:近乎团队

 1、核心:数据缓存



  $.data(element,[key],[value])


   此方法在jQuery 1.8中删除,但你仍然可以通过$._data(element, "events")调试事件数据注意,这是不支持的公共接口;实际的数据结构可能会改变从版本之间不兼容。


  2、选择器:基本


  (1)、:lang(language)选择指定语言的所有元素。


  :lang选择器,匹配有一个语言值等于所提供的语言代码,或以提供的语言代码开始,后面马上跟一个“ - ”的元素。例如,选择器$("div:lang(en)")将匹配<div lang="en"> and <div lang="en-us">(和他们的后代<div>),但不包括<div lang="fr">


  (2)、:root选择该文档的根元素。


  在HTML中,文档的根元素,和$(":root")选择的元素一样,永远是<html>元素。


  例:$(":root").css("background-color","yellow");设置<html>背景颜色为黄色


  (3)、:target选择由文档URI的格式化识别码表示的目标元素。


  如果文档的URI包含一个格式化的标识符,或hash(哈希), 然后:target选择器将匹配ID和标识符相匹配的元素。  例如,给定的URI http://example.com/#foo, $( "p:target" ),将选择<p id="foo">元素。


  3、选择器:子元素


  (1)、:first-of-type选择所有相同的元素名称的第一个兄弟元素。


  :first-of-type 选择器匹配元素,在文档树中,相同的父元素并且在其他相同的元素名称之前。


  (2)、:last-of-type选择的所有元素之间具有相同元素名称的最后一个兄弟元素。


  :last-of-type 选择器匹配在文档树中具有相同的父元素并且相同的元素名称,后面没有任何其他元素 的元素。


  例:<div> <span>1</span><span>2</span><span>3</span></div>


  $("div:first-of-type")在每一个匹配的div中查找第一个span;$("div:last-of-type")在每一个匹配的div中找到最后一个span;


  (3)、:nth-last-child(n|even|odd|formula) 选择所有他们父元素的第n个子元素。计数从最后一个元素开始到第一个。


  因为jQuery的实现:nth-child(n)是严格来自CSS规范,所以n值是“1索引”,也就是说,从1开始计数。对于所有其他选择器表达式,jQuery遵循JavaScript的“0索引”的计数。因此,给定一个单一<ul>包含两个<li>,$('li:nth-child(1)')选择第一个<li>,而$('li:eq(1)')选择第二个。


  例:<ul><li>1</li> <li>2</li> <li>3</li> <li>4</li></ul>


  $("ul li:nth-last-child(2)"); 在每个匹配的ul中查找倒数第二个li;


  (4)、:nth-last-of-type(n|even|odd|formula) 选择的所有他们的父级元素的第n个子元素,计数从最后一个元素到第一个。


  因为jQuery的实现:nth-是严格来自CSS规范,n值是“1-indexed”,也就是说,从1开始计数。 对于所有其他选择器表达式比如:eq() 或 :even ,jQuery遵循JavaScript的“0索引”的计数。因此,给定一个单一<ul>包含3个<li>,$('li:nth-last-of-type(1)')选择第3个,也就是最后一个<li>。


  在每个匹配的ul中查找倒数第二个li


  <ul><li>1</li><li>2</li><li>3</li><li>4</li></ul>


  $("ul li:nth-last-of-type(2)");


  (5)、:nth-of-type(n|even|odd|formula) 选择同属于一个父元素之下,并且标签名相同的子元素中的第n个。


  因为jQuery的实现:nth-是严格来自CSS规范,n值是“1-indexed”,也就是说,从1开始计数。对于所有其他选择器表达式比如:eq() 或 :even ,jQuery遵循JavaScript的“0索引”的计数。


  (6)、:only-of-type选择所有没有兄弟元素,且具有相同的元素名称的元素。


  如果父元素有相同的元素名称的其他子元素,那么没有元素会被匹配。


  4、筛选:串联


  (1)、 andSelf()加入先前所选的加入当前元素中


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


   从jQuery1.8开始,.andSelf()方法已经被标注过时,在jQuery1.8和更高版本中应使用.addBack()。


  我们认为对于“添加并返回”以前的结果集合这是一个更好的名字。新方法可以接受一个可选的选择器,该选择器可以用来过滤之前集合,将它添加到当前集合并返回。$(“section, aside”).children(“ul”).addBack(“aside”) 会根据他们在文档中的顺序,得到section与aside下所有ul子元素,外加所有aside元素。虽然.addSelf()在1.9中仍然可以使用,我们建议您尽快修改名称。如果使用.addSelf(),jQuery Migrate插件会提出警告。


  (2)、addBack()添加堆栈中元素集合到当前集合,一个选择性的过滤选择器。


  如上所述在讨论中的.end(), jQuery对象维护一个堆栈内部来跟踪匹配的元素集合的变化。当一个DOM遍历方法被调用时,新的元素集合推入到堆栈中。 如果还需要包含先前的元素集合,.addBack() 可以提供帮助。


  5、事件:事件切换


  toggle([speed],[easing],[fn])


  用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件。


  如果元素是可见的,切换为隐藏的;如果元素是隐藏的,切换为可见的。


  1.9版本 .toggle() 方法删除,jQuery Migrate(迁移)插件可以恢复此功能。


  6、效果:自定义


  finish( [queue ] )


  停止当前正在运行的动画,删除所有排队的动画,并完成匹配元素所有的动画。


  当.finish()在一个元素上被调用,立即停止当前正在运行的动画和所有排队的动画(如果有的话),并且他们的CSS属性设置为它们的目标值(所有动画的目标值)。所有排队的动画将被删除。


  如果第一个参数提供,该字符串表示的队列中的动画将被停止。


  .finish()方法和.stop(true, true)很相似,.stop(true, true)将清除队列,并且目前的动画跳转到其最终值。但是,不同的是,.finish() 会导致所有排队的动画的CSS属性跳转到他们的最终值。


  7、工具:浏览器及特性检测


  jQuery.sub()


  可创建一个新的jQuery副本,不影响原有的jQuery对像。


  有两个具体使用jQuery.sub()创建案例。首先是提供完全没有破坏jQuery原有一切的方法,另一个用于帮助做jQuery插件封装和基本命名空间。


  请注意,jQuery.sub()不会做任何特殊的隔离 - 这不是它的意图。所有关于jQuery的sub'd版本的方法将仍然指向原来的jQuery。(绑定和触发仍将通过主jQuery的事件,数据将通过主绑定的元素的jQuery,Ajax的查询和活动将通过主jQuery的运行,等等)。


  请注意,如果你正在寻找使用这个开发插件,应首先认真考虑使用一些类似jQuery UI widget工厂,这两个状态和插件管理子方法。 使用jQuery UI widget的一些例子建立一个插件。


  这种方法的具体使用情况下可以通过一些例子最好的描述。


   该方法是在jQuery 1.5中引入的,但是被证明不是很有用,将被移到jQuery 1.9兼容性插件中。


  9、延迟对象


  deferred.pipe([doneFilter],[failFilter],[progressFilter])


  筛选器和/或链Deferreds的实用程序方法。


  deferred.pipe()方法返回一个新的promise,该过滤器通过一个函数有关的递延状态和价值。该doneFilter和failFilter原递延过滤功能的解决/拒绝的状态和价值。这些过滤器函数可以返回一个新的值被传递给管道承诺的done()或fail()的回调,或者他们可以返回另一个观察对象(推迟,承诺等),将通过它的解决/拒绝状态和价值,以保证管道的回调。如果使用的是过滤功能null ,或不指定,则管道的承诺将得到解决或原驳回值具有相同。


  注意:从 jQuery 1.8 开始,deferred.pipe() 方法过时. 应该使用deferred.then() 代替它。


加载中
返回顶部
顶部