【问题标题】:$('elems').each() with fat arrow$('elems').each() 带有粗箭头
【发布时间】:2016-08-01 14:44:51
【问题描述】:

我开始使用 ES6 粗箭头函数表示法,我非常喜欢它。但我对它的上下文有点困惑。据我所知,胖箭头函数中的关键字 this 是指函数当前运行的上下文。我想做一些简单的 jQuery 迭代,比如:

$('ul#mylist > li').each(() => {
   $(this).addClass('some-class-name');
});

但显然这段代码不起作用。如何在胖箭头函数中引用此特定代码中的当前“LI”元素?

【问题讨论】:

    标签: javascript ecmascript-6 arrow-functions


    【解决方案1】:

    each() 方法为回调函数提供两个参数。它们是当前索引和当前项目。因此,您可以执行以下操作:

    $('ul#mylist > li').each((i, v) => {
       $(v).addClass('some-class-name');
    });
    

    其中“v”变量是当前的“li”元素

    【讨论】:

      【解决方案2】:

      因为箭头函数上下文中的this与调用上下文相同。

      each 函数提供一个当前元素作为回调的第二个参数,所以

      $('ul#mylist > li').each((i, el) => {
        $(el).addClass('some-class-name');
      });
      

      或者在给定的情况下不需要循环

      $('ul#mylist > li').addClass('some-class-name');
      

      【讨论】:

        猜你喜欢
        • 2016-08-06
        • 1970-01-01
        • 1970-01-01
        • 2021-02-09
        • 2021-03-15
        • 2017-01-13
        • 2012-02-16
        • 2019-05-07
        • 1970-01-01
        相关资源
        最近更新 更多