javascript - 为什么我在这里得到的 document.getElementById 为 null?

标签 javascript angularjs domdocument getelementbyid

代码笔:http://codepen.io/leongaban/pen/YyWmOo?editors=101

my app ,我有一个简单的 div id 名称数组 media = ["twitter", "news", "blogs"]

然后我有一个简单的 for 循环,它尝试从标记中获取 #ids 并将它们添加到我的 vm.parameters 对象中。

当前 div 显示为 null:

enter image description here

<小时/>

我的 Controller 中的代码:

var vm = this;
    vm.parameters = {};

var media = ['twitter', 'news', 'blogs'];

console.log(vm);
console.log(media);

initParameters();

function initParameters() {
    console.log('initParameters called...');
    for (var i=0; i<media.length; i++) {
        vm.parameters[media[i]]       = {};
        vm.parameters[media[i]].start = 0;
        vm.parameters[media[i]].limit = 10;
        vm.parameters[media[i]].total = 0;
        vm.parameters[media[i]].div   = document.getElementById(media[i]);
        console.log('getElementById =',document.getElementById(media[i]));
    }

    console.log('media = ',media);
    console.log('vm.parameters = ',vm.parameters);
}

标记(使用 Ionic framework ):

<ion-slide id="twitter">
    <h3>Twitter stream</h3>
    <p>Here is content for Twitter</p>
</ion-slide>
<ion-slide id="news">
    <h3>News stream</h3>
    <p>Here is content for News</p>
</ion-slide>
<ion-slide id="blogs">
    <h3>Blogs</h3>
    <p>Here is content for blogs</p>
</ion-slide>

最佳答案

在尝试获取 ID 之前,您需要执行 onload 事件。这是因为 Controller 在 DOM 加载之前运行:

window.onload = function(){
    initParameters();
}

关于javascript - 为什么我在这里得到的 document.getElementById 为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32726993/

相关文章:

javascript - 如何使用客户端脚本设置 Dojo 列表文本框的标签和值

javascript - win.toggleTabBar() 在 Electron 中不起作用

javascript - MEANJS:检查数据库中的 url 并路由到动态 Angular 状态

javascript - AngularJS 中带有 Promise 的递归查询

javascript - 当输入字段从复选框中隐藏时,如何使 ng-model 预览数据为空?

php - 如何使用 php DomDocument 获取特定标签的 html

javascript - 输入类型之间的 DOM/jQuery 事件传播差异

javascript - 函数转化为函数调用javascript

php - 在原始 DOMDocument 被销毁后访问导入的元素

php - XPath 直到下一个标记