浅谈jQuery中的eq()与DOM中element.[]的区别

如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>

  <a class="a">#1</a>
  <a class="a">#2</a>
  <a class="a">#3</a>
  <script src="js/jq.js"></script>

  <script>
    var a = $('.a') ;
    var b = $('.a').eq(1) ;
    var c = $('.a')[1];
    var d = $('.a').eq(1)[0];
    var f = $('.a')[0].eq(1);

  </script>
</body>
</html>

$('.a')  // 选择了3个a,都是jq对象(可以用jq的属性、方法)

$('.a').eq(1) // 选择了第二个a,是jq对象(不可以使用dom属性方法,可以用jq的属性、方法)

$('.a')[1]  // 选择了第二个a,是dom对象(可以使用dom属性,方法,不可以使用jq属性方法)

$('.a').eq(1)[0]  // 选择了第二个a,并且转化成都是dom对象(可以使用dom属性,方法,不可以使用jq属性方法)

-----由此可见,jquery将js的又包装了一层,jq属性可以剥开包装调用dom属性,而dom则无法调用jq的属性方法。

$('.a')[0].eq(1) // 错误,因为dom对象用不了jq方法,eq()是jq方法。

相关推荐