jQuery each()closure – 如何访问外部变量

前端之家收集整理的这篇文章主要介绍了jQuery each()closure – 如何访问外部变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
从$.each()中访问我的this.rules变量的最佳方法是什么?任何解释为什么/如何也将有所帮助!
  1. app.Style = function(node) {
  2. this.style = node;
  3. this.rules = [];
  4. var ruleHolder = node.find('Rule');
  5.  
  6. $.each(ruleHolder,function(index,value) {
  7. var myRule = new app.Rule($(ruleHolder[index]));
  8. this.rules.push(myRule);
  9. });
  10.  
  11. console.log(this.rules)
  12. }

解决方法

存储对此的引用 – 例如 – 将其命名为self,然后再调用.each(),然后使用self.rules访问规则:
  1. app.Style = function(node) {
  2. this.style = node;
  3. this.rules = [];
  4. var ruleHolder = node.find('Rule');
  5.  
  6. var self = this;
  7. $.each(ruleHolder,value) {
  8. var myRule = new app.Rule($(ruleHolder[index]));
  9. self.rules.push(myRule);
  10. });
  11.  
  12. console.log(this.rules)
  13. }

猜你在找的jQuery相关文章