var p = $("<p>1111111</p><p>1111111</p>");
var _p = p[0]
我們知道,當我們執行p [0]時,我們得到一個原始的js dom對象。是[]建築運營商還是其他什麼?jQuery如何實現[]
如何擁有自己的Object支持[]運算符?
var p = $("<p>1111111</p><p>1111111</p>");
var _p = p[0]
我們知道,當我們執行p [0]時,我們得到一個原始的js dom對象。是[]建築運營商還是其他什麼?jQuery如何實現[]
如何擁有自己的Object支持[]運算符?
通過按指數手動分配項目,您可以使用JavaScript實現相同的結果。
這樣,您將擁有自定義對象成員/屬性和索引值。
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();
<div id="div1">1</div>
<div id="div2">2</div>
<div id="div3">3</div>
[]
代表一個數組,不是特別限定在Jquery中。當你使用Jquery選擇器時,它將一組匹配的元素作爲一個數組返回(幾乎等於本地數組)。你顯示的零是一個數組索引,這意味着獲得第一個匹配的元素。
JQuery的選擇不返回數組。他們返回一個類似數組的JQuery對象。 –
@RobbyCornelissen是的,該對象是可迭代的,並且alomst等於本地數組。 –
感謝您的明智建議, $ divs [0]是另一個概念$ divs.0,這裏0只是一個屬性$ divs是我嗎? – rex
@rex確切地說,想法是對的,只有一句話 - 「$ divs.0」在語法上不正確。 –