javascript – 如何将一个元素传递给循环中的jQuery帖子
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何将一个元素传递给循环中的jQuery帖子,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1718字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 如何将一个元素传递给循环中的jQuery帖子](/upload/InfoBanner/zyjiaocheng/802/ecc0fcaeb102418c84b1dc8d9bb60cd8.jpg)
我有以下代码:
for (_field in _fields) {
$.post(
'/api/fields',
{ id: _field.id },
function(data, _field) {
alert(data);
} (data, _fields[_field)
);
}
我必须将_fields [_field]元素传递给从jQuery返回数据的函数,因为在循环期间丢失了对正确对象的引用.问题是在定义post函数应该有一个_field参数时,你还必须为数据指定一个参数,否则数据将被_field覆盖.
目前数据返回为未定义,因为我没有在循环内定义数据对象.我也尝试传入null,但这也只是返回null.我正在寻找一种方法来传递元素而不会覆盖从post函数返回的数据.
有没有办法解决这个问题,或者是否有一种替代的jQuery方法可以满足需要?
解决方法:
您需要一个函数工厂函数 – 一个创建函数的函数:
for (_fieldName in _fields) {
$.post('/api/fields',
{
// Unrelated, but I think this bit is wrong; shouldn't it be
// `id: _fields[_fieldName].id` ? You're trying to use `.id` on
// a string -- see below for a full update
id: _fieldName.id
},
makeHandler(_fields[_fieldName])
);
}
function makeHandler(field) {
return function(data) {
// Use `data` and `field` here
};
}
请注意,在对象初始值设定项中,我们传入$.post,我们调用makeHandler运行并返回我们将传递给$.post的函数.然后在$.post完成时调用该函数,并且可以访问$.post给出的数据参数以及makeHandler的字段参数,因为它是对makeHandler调用的上下文的闭包,其中包括场论证.更多:Closures are not complicated
请注意,在上面的代码中,我将变量_field更改为_fieldName更清楚:for..in循环中的变量是一个字符串,即属性的名称.另请参阅评论,我认为您试图在错误的地方使用.id.这是我认为你真正想要的:
for (_fieldName in _fields) {
_field = _fields[_fieldName];
$.post('/api/fields',
{
id: _field.id
},
makeHandler(_field)
);
}
function makeHandler(field) {
return function(data) {
// Use `data` and `field` here
};
}
另请注意,如果_fields是一个数组,则不应在没有安全措施的情况下使用for..in.更多:Myths and realities of for..in
内容总结
以上是互联网集市为您收集整理的javascript – 如何将一个元素传递给循环中的jQuery帖子全部内容,希望文章能够帮你解决javascript – 如何将一个元素传递给循环中的jQuery帖子所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。