【问题标题】:document.getElementById(#mapid) returns nulldocument.getElementById(#mapid) 返回 null
【发布时间】:2013-12-09 07:44:36
【问题描述】:

在这里提到这个问题,context is not defined javascript

我只是抛出另一个关于 document.getElementById 返回 null 的错误的问题,即使模板已经编译。

简要背景,我正在使用车把模板,jquery,我希望 googlemap 出现在车把模板的 1 中。

我的html:

 <script id="employee-tpl" type="text/x-handlebars-template">
<div class='header'><a href='#' class="button header-button header-button-left">Back</a><h1>Gloop</h1></div>
<div class='details'>
    <img class='employee-image' src='img/{{firstName}}_{{lastName}}.jpg' />
    <h1>{{name}}</h1>
    <h2>{{address}}</h2>
    <h2><a href="tel:{{phone}}">{{phone}}</a></h2>
    <span class="location"></span>
    <ul>
        <li><div id="map-canvas"> </div></li>
    </ul>
</div>
</script>

还有我的 js

this.render = function(){

    this.el.html(EmployeeView.template(employee));
console.log(document.getElementById("map-canvas"));

};
this.initialize = function(){
    this.el=$('<div/>');

};

this.initialize();
}

EmployeeView.template = Handlebars.compile($("#employee-tpl").html());

请注意,对控制台的调用将记录 null 值,并且此 js 在我的 html 文件底部调用

<script src="lib/iscroll.js"></script>
<script src="lib/handlebars.js"></script>
<script src="lib/jquery-1.8.2.min.js"></script>
<script src="js/storage/cafe-memory-store.js"></script>
<script src="js/EmployeeView.js"></script>
<script src="js/main.js"></script>
</body>
</html>

我的理解是,我的编译将呈现 div,然后应该可以看到它,但事实并非如此。有谁知道为什么?

【问题讨论】:

  • 在我看来标记无效,DIV 不是自闭合元素?
  • 嗨,adeno,嗯,不管是自我关闭还是使用结束标签,都没有区别
  • 如果getElementById 正在返回null,那是因为在调用它时 DOM 中没有带有id 的元素。使用浏览器的 DOM 实用程序和调试器找出原因。在你的 render 函数中放置一个断点,并及时查看 DOM。
  • 这个不正确:&lt;li&gt;&lt;div id="map-canvas"/&gt;&lt;/
  • 感谢提示,但是使用 chrome 和元素选项卡不会显示 div,我在想,因为这是车把模板/脚本的一部分?

标签: javascript jquery templates dom handlebars.js


【解决方案1】:

这就是你所有的代码吗?如果我将它添加到 JS 中,它可以工作.. 但很难看到你在追求什么。

var source = $("#employee-tpl").html(); 
var template = Handlebars.compile(source); 
var data = { //your data here }
$('body').append(template(data));

【讨论】:

  • 很遗憾,它仍然返回 null :(
  • 你要关闭
  • 我在哪里放你在这里添加的sn-p?也许你可以把它放在小提琴里,我会从那里抓住?
猜你喜欢
  • 1970-01-01
  • 2023-03-25
  • 2015-02-02
  • 2011-11-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-02
  • 2021-03-05
相关资源
最近更新 更多