在jQuery API文档中并未提及的get用法,只有读了源码才会知道哦


发布者 shaozilee  发布时间 1397224983749
关键字 JS学习 

(本文由 shaozilee 提供,欢迎您向我们分享经验,心得,技巧,翻译


jQuery作为前端中的利器,现在是人手一把,我也来一把,免费的嘛
阅读源码,才是真正用好jQuery的唯一途径,也就在我阅读源码的时候,先实践后理论的结果就是,容易发现不为人知的秘密,如下源码:


// Get the Nth element in the matched element set OR
 // Get the whole matched element set as a clean array
 get: function( num ) {
  return num != null ?
   // Return just the one element from the set
   ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
   // Return all the elements in a clean array
   slice.call( this );
 }

 
根据作者发布的API文档中提供的get方法的用法,想要获取选择器元素列表中的倒数第二个元素:

var xx = $(".xxx");
console.log(xx.get(xx.length-2));

然而有下面这种写法会更简洁:

console.log($(".xxx").get(-2));

参数是正数,是从前往后取。负数是从后往前取,-1就是倒数第一个,-2即是倒数第二个。。。

ok,就到这里吧







回复 (6)
  • #
  • #1 xiaoqiao 1397525277707
    不错……
  • #2 xiaoqiao 1397525324597
    不过它跟.eq(indx)的区别是啥?
  • #3 shaozilee 1397548562826
    区别是get返回的是html dom元素,而.eq()返回的是jquery对象
  • #4 bear 1397616384000
    除了可以负向取元素比较方便之外,其他跟console.log($(.xxx)[index])也没啥区别
  • #5 redstone 1398044920000
    有点矫情了。利用[index]也很容易获取html dom。
  • #6 饶毕芒 1411348619455

    @redstone #4

    这个最简单: $('a')[0]

微信扫码 立即评论