jQuery如何实现[]

时间:2017-02-20 06:43:34

标签: jquery

var p = $("<p>1111111</p><p>1111111</p>");
var _p = p[0]

我们知道,当我们执行p [0]时,我们得到一个原始的js dom对象。是[]构建运算符还是其他任何东西?

如何拥有自己的Object support []运算符?

2 个答案:

答案 0 :(得分:0)

[]表示一个数组,不是特别限制于Jquery。当您使用Jquery选择器时,它将匹配元素集作为数组返回(几乎等于本机数组)。你显示的零是一个数组索引,这意味着获得第一个匹配的元素。

答案 1 :(得分:0)

您可以通过索引手动分配项目来实现相同的结果,可以使用JavaScript 这样,您将拥有自定义对象成员/属性和索引值。

&#13;
&#13;
var $ = function(selector) {
  function ctor(items) {
    this.count = function() {
      return items.length;
    };
    
    this.get = function(ind) {
      return items[ind];
    };

    this.log = function() {
      for (var i = 0; i < items.length; i++)
        console.log("Item " + i + ": " + items[i].outerHTML);
    };
 
    for (var i = 0; i < items.length; i++)
      this[i] = items[i];
  }
  
  var items = document.querySelectorAll(selector);
  return new ctor(items);
};

var $divs = $("div");
console.log("Count = " + $divs.count());
console.log($divs[0].innerText);
console.log($divs.get(1).innerText);
$divs.log();
&#13;
<div id="div1">1</div>
<div id="div2">2</div>
<div id="div3">3</div>
&#13;
&#13;
&#13;