如何在JavaScript中正确读取对象

如何在JavaScript中正确读取对象,javascript,handlebars.js,javascript-objects,Javascript,Handlebars.js,Javascript Objects,我是编程新手,最近开始学习Javascript,在我做的几个练习中出现了一个问题。我在网站上搜索了更多信息,但没有找到解决问题的方法。我为我糟糕的英语提前道歉,如果这不是问这个问题的正确地点或方式,因为这是我在Stackoverflow的第一篇帖子 目前正在练习HTML模板。假设代码是正确的,我不确定哪里错了。将代码加载到浏览器和Handlebars时会出现错误:“错误:必须将字符串或Handlebars AST传递给Handlebars.compile。传递的是未定义的”。我试着调试,发现当我

我是编程新手,最近开始学习Javascript,在我做的几个练习中出现了一个问题。我在网站上搜索了更多信息,但没有找到解决问题的方法。我为我糟糕的英语提前道歉,如果这不是问这个问题的正确地点或方式,因为这是我在Stackoverflow的第一篇帖子

目前正在练习HTML模板。假设代码是正确的,我不确定哪里错了。将代码加载到浏览器和Handlebars时会出现错误:“错误:必须将字符串或Handlebars AST传递给Handlebars.compile。传递的是未定义的”。我试着调试,发现当我试着从
date
对象获取一个值时,它会返回未定义的值。在上一个练习中,我遇到了一个类似的问题,我试图读取JSON对象,但并没有解析它,所以再次返回未定义的对象。你能帮帮我吗?我在这个问题上纠结了一段时间

var数据={
动物:[{
名字:“狮子”,
网址:'https://susanmcmovies.files.wordpress.com/2014/12/the-lion-king-wallpaper-the-lion-king-2-simbas-pride-4685023-1024-768.jpg'
}, {
名字:“海龟”,
网址:'http://www.enkivillage.com/s/upload/images/a231e4349b9e3f28c740d802d4565eaf.jpg'
}, {
名字:“狗”
}, {
名字:'猫',
网址:'http://i.imgur.com/Ruuef.jpg'
}, {
名字:“又是狗”
}]
}
window.onload=函数(){
var htmlTemplate=document.getElementsByClassName('container-template').innerHTML;
var template=handlebar.compile(htmlTemplate);
对于(让x表示数据。动物){
如果(x.hasOwnProperty('url'){//x.url
x、 hasUrl=true;
}否则{
x、 hasUrl=false;
}
}
document.getElementsByClassName('container').innerHTML=模板(数据);
}

动物与蝙蝠侠
动物
{{{每只动物}
{{{#如果hasull}}
  • {{else}
  • {{/if} {{/每个}}
    document.getElementsByClassName返回元素数组,而不是单个元素,因为页面上的多个元素可以具有相同的类

    您可能希望使用
    id
    而不是类:

    <script id="container-template" type="text/x-handlebars-template">
    
    var htmlTemplate = document.getElementById('container-template').innerHTML;
    
    
    var htmlTemplate=document.getElementById('container-template').innerHTML;
    
    这与解析JSON无关。您的
    数据
    对象不需要解析,因为它已经是一个javascript对象。我很确定问题是因为
    document.getElementsByClassName
    返回一个数组。请尝试
    documents.getElementsByCassName(“容器模板”)[0]。innerhtml
    “您一直在使用这个词。我认为它的意思与您认为的不同。”。谢谢您的回答,这对我帮助很大。有了这个问题,我意识到我对DOM、数组和对象知之甚少。