首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >i++从JavaScript for循环传递到jQuery(文档).ready(函数()){在遍历数组时不作为动态索引

i++从JavaScript for循环传递到jQuery(文档).ready(函数()){在遍历数组时不作为动态索引
EN

Stack Overflow用户
提问于 2018-10-17 14:24:38
回答 1查看 303关注 0票数 0

对于我的罪过,我不是一个全职的JavaScript实践者,但我正在努力.下面是我尝试的广告管理命名空间的简化版本,它使用Google标记API

slots是一个由googletag.defineSlot(返回的GPT插槽数组,设置在头部,通过将其推迟到jQuery,试图将只存在于CMS后的HTML呈现的div作为目标。

我怎么能做到这一点:

代码语言:javascript
运行
复制
var i;
for (i=0;i<slots.length;i++) {
    jQuery(document).ready(function() { 
        jQuery('#ads').append('<div id="'+slots[i].getSlotElementId()+'"></div>');
    });
}

...with是一个动态i,因为当我调试它时,我看到不能像这样传递i,只能传递一个硬编码的索引。

这在jQuery(document).ready(function() {内部工作。

代码语言:javascript
运行
复制
console.log('adManager.all_devices.button.slots[3].getSlotElementId());

这会导致未定义的错误:

代码语言:javascript
运行
复制
console.log('adManager.all_devices.button.slots[i].getSlotElementId());

我曾经是reading (honest),但我很困惑。用温和的话说,这是怎么回事,我该怎么解决?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-17 14:28:01

你的结构不对。您需要附加一次ready侦听器,然后在回调中执行循环。详情如下:

代码语言:javascript
运行
复制
  jQuery(document).ready(function() {
    for (var i=0;i<slots.length;i++) {
        jQuery('#ads').append('<div id="'+slots[i].getSlotElementId()+'"></div>');
    }
  });
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52857248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档