You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在jQuery .each循环外部导出循环内的索引变量?

问题原因

你在$.each的回调函数里用var声明的new_recipients_count是局部变量,作用域仅限这个回调函数内部,循环结束后外部根本访问不到它的值。

解决方案

方案1:把变量提到循环外面声明

把new_recipients_count的声明移到$.each循环外,循环里只更新它的值,这样循环结束后外部就能拿到最后一次循环的结果:

var new_recipients_count = 0;
$.each($("#recipients .address"), function(i, o) {
    new_recipients_count = i + 1;
});

var placeholder_count = new_recipients_count;
var newRow = '<input type="text" name="Email_Address" placeholder="  ' + placeholder_count + ' ">';

方案2:直接取元素总数(更简洁高效)

其实你要的最终值就是#recipients .address元素的总个数,没必要遍历循环,直接用jQuery的length属性就能搞定:

// 现有地址的总数量,对应你原来循环最后一次的i+1
var placeholder_count = $("#recipients .address").length;
// 如果是要新输入框的序号(比如现有3个,新的是第4个),就加1:
// var placeholder_count = $("#recipients .address").length + 1;

var newRow = '<input type="text" name="Email_Address" placeholder="  ' + placeholder_count + ' ">';

这样代码更简洁,还省了循环遍历的开销。

内容的提问来源于stack exchange,提问作者Nomada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 16:42:46