我想在迭代函数中使用jQuery元素,同时保持对类的实例变量的访问。
例如:
class MyClass
myVar: true
myFunction: =>
$('div').each ->
console.log @.myVar # true?
console.log $(this) # div?
答案 0 :(得分:2)
您提出的问题的答案是:使用带有each
的胖箭头来维护@
的值,并使用传递给each
的索引/元素参数来访问元素:
myFunction: =>
$('div').each (i, e) =>
console.log @myVar
console.log $(e)
另外,使用@myVar
代替@.myVar
(两者都有效,但@.myVar
远非惯用。)
更好回答您实际要做的事情是,避免each
并使用CoffeeScript的for/in
:
myFunction: ->
for div in $('div')
console.log @myVar # true
console.log $(div) # div