javascript - 如何在 jQuery .each() 函数中访问变量?

标签 javascript jquery scope closures

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

与这个特定问题相比,我更感兴趣的是学习如何从闭包中访问外部变量。我可以通过从每个函数内部分配 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++;
  });

}

最佳答案

阅读docs , 它已经有索引了!

.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 在函数内部,所以每次迭代都会重置它。您需要将其移出函数才能使其正常工作。

关于javascript - 如何在 jQuery .each() 函数中访问变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15282569/

相关文章:

javascript - 我对 for 循环中的 javascript let 和 var 感到困惑?

javascript - jQuery 输入掩码不起作用

jquery - 如何创建支持后退按钮的 ASP.NET MVC 向导?

javascript - 我可以切换文本消失但无法显示超链接文本

javascript - 添加和删​​除用于切换选项卡的类

javascript - 全局变量 javascript, "varname"或 "window.varname"更快

javascript - 数组过滤元素彼此的值太接近

javascript - 算术运算符符号作为 Javascript 中的函数名称

JavaScript 模块模式 : calling functions within nested function

python - 如果 Python 一次执行一行,为什么它可以在变量声明之前看到它们?