CoffeeScript‘this’在jQuery.each()中

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (59)

我有一些如下所示的e coffeescript:

class foo:
    @bar = 'bob loblaw'

    processRows: ->
        $("#my-table>tr").each ->
            id = $(this).attr("id")
            @processRow id

    processRow: (id) ->
        console.log @bar + id

所以我的问题是:我需要this引用.each循环内部的上下文来获取id,但我也想this引用里面的类实例foo.processRow()- 它目前不能。

使用类似于函数_this = this之外的东西.each并传递它并不是一个好的解决方案,因为我引用了很多类变量processRow

有什么想法吗?我错过了明显的东西吗?谢谢!

提问于
用户回答回答于

jQuery.each将当前元素作为回调的第二个参数传递,因此你不会保留this

processRows: ->
    $("#my-table>tr").each (index, element) =>
        id = $(element).attr("id")
        @processRow id
用户回答回答于

比任何一种方法都更有效的方法是编写

for element, index in $('#my-table>tr')
  ...

这也能解决你this问题。

所属标签

可能回答问题的人

  • 天使的炫翼

    17 粉丝531 提问9 回答
  • 优惠活动秘书

    0 粉丝2 提问8 回答
  • 最爱开车啦

    8 粉丝503 提问6 回答
  • 富有想象力的人

    3 粉丝0 提问5 回答

扫码关注云+社区

领取腾讯云代金券