4

这是一个常见困境的例子:如何在markupthis 中访问.each()

我对学习如何从闭包中访问外部变量比对这个特定问题更感兴趣。我可以通过从每个函数内部分配来解决这个问题markup,但我宁愿学习一种更优雅的方式来处理这类问题。

// hide form & display markup
function assessmentResults(){

  // get assessment responses
  var markup = parseForm();

  // show assessment results to user
  $('#cps-assess-form fieldset').each( function() {
    var q = $(this).find('.fieldset-wrapper');
    var i = 0;

    // hide form questions
    q.slideUp();

    // insert markup
    $('<div>'+markup[i]+'</div>').insertAfter(q);
    i++;
  });

}
4

1 回答 1

5

阅读文档,它已经有一个索引!

.each( function(index, Element) )

不需要i

$('#cps-assess-form fieldset').each( function(index) {
    var q = $(this).find('.fieldset-wrapper').slideUp();
    $('<div/>').html(markup[index]).insertAfter(q);
});

你失败的原因是i函数内部,所以每次迭代都会重置它。您需要将其移到函数之外才能正常工作。

于 2013-03-07T22:01:31.567 回答