2016-01-21 62 views
1

比方说,我们有:的Javascript JQuery的链接

$("p")[0].innerHTML; 

$("p").html(); 

在上面的例子中,我们有同样的结果。所以我想知道JQuery如何返回节点列表和自身以允许链接?

+1

这是因为jQuery选择器返回一个对象。然后,您只需调用该对象的属性,在这种情况下是'html'和'0'。如果你使用console.log($('p'))'',你会看到列出的所有方法。 –

+2

执行'console.log($(“p”));''和'console.log($(“p”)[0]);''''''''' –

+0

http://stackoverflow.com/questions/7475336/how-does-jquery-chaining-work/7475375#7475375 –

回答

2

所以我想知道JQuery如何返回节点列表和自身以允许链接?

它没有。

它只返回自己(它是一个对象)。

该对象有一个名为0的属性,它包含元素数组中的第一个元素。它还有一个名为html的房产,其中包含一项功能。

+0

@TrueBlueAussie - 它[不是数组](http://jsbin.com/fadonu/1 /编辑?JS,控制台),但即使它是,那又如何?数组(除了空数组)有一个名为'0'的属性。一个数组只是一个对象,它从'Array'沿着原型链继承了一些属性,并被设计为使用以整数值作为名称的属性来保存数据。 – Quentin

+0

刚刚检查,你是正确的。那很可爱。它意味着$(“p”)[“0”]。innerHTML'也适用于我刚刚测试过的,是的,它对每个“数组”条目都有一个数字属性。感谢那个小小的帖子。我的无知已经减轻了+1 :) –

+0

这比我所期待的更神奇。所以如果我理解的很好,每个用选择器检索到的元素都被存储为一个带有数字索引的属性? – user3292788

0

这就是所谓的流利的语法。每个函数都返回给定的对象。像

function f(obj){ 
    doSomething(obj); 
    return obj; 
}