【问题标题】:Javascript JQuery chainingJavascript JQuery 链接
【发布时间】:2016-01-21 10:12:25
【问题描述】:

假设我们有:

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

$("p").html();

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

【问题讨论】:

  • 这是因为 jQuery 选择器返回一个对象。然后,您只需调用该对象的属性,在本例中为 html0。如果您console.log($('p')),您将看到列出的所有方法。
  • console.log($("p"));console.log($("p")[0]); 你会明白的。

标签: javascript jquery chaining


【解决方案1】:

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

它没有。

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

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

【讨论】:

  • @TrueBlueAussie — isn't an array,但即使是,那又如何?数组(空数组除外)有一个名为0 的属性。数组只是一个对象,它沿原型链从Array 继承了一些属性,旨在使用以整数值作为名称的属性来保存数据。
  • 刚刚检查,您是正确的。那很可爱。这意味着 $("p")["0"].innerHTML 也可以工作,我刚刚测试过,是的,它对每个“数组”条目都有一个数字属性。谢谢你的小花絮。我的无知减少了+1 :)
  • 它没有我想象的那么神奇。因此,如果我理解得很好,使用选择器检索的每个元素都存储为具有数字索引的属性?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多