Javascript 可以在console.log中获得多个输出,但不能在HTML中获得

Javascript 可以在console.log中获得多个输出,但不能在HTML中获得,javascript,html,firebase,firebase-realtime-database,Javascript,Html,Firebase,Firebase Realtime Database,我一直在尝试将Firebase上的多个值输出到我的HTML文档中,但是,我可以使用console.log获得所有子输出,但是当我尝试将其添加到HTML中时,它只输出1个值。我尝试使用forEach,但无法使其工作(不确定是否出错) 到目前为止,我掌握的代码是 const dbRefObjectPosts = dbRefObject.child('Posts'); dbRefObjectPosts.on("value", function(snap){ snap.forE

我一直在尝试将Firebase上的多个值输出到我的HTML文档中,但是,我可以使用console.log获得所有子输出,但是当我尝试将其添加到HTML中时,它只输出1个值。我尝试使用forEach,但无法使其工作(不确定是否出错)

到目前为止,我掌握的代码是

const dbRefObjectPosts = dbRefObject.child('Posts');

    dbRefObjectPosts.on("value", function(snap){
        snap.forEach(function(childSnapshot){
            document.getElementById('object').innerHTML = (
                "Title: " + childSnapshot.val().Title + "</br>" +
                "Message: " + childSnapshot.val().Message + "</br>" +
                "Posted: " + childSnapshot.val().Posted
            );
            console.log(childSnapshot.val().Message);
        });
    });
console.log输出为

Title: 6756775
Message: 56756575776
Posted: Date: 19/3/2017 @ 23:2:40
out with friends
BLOG.js:61 this is a test
BLOG.js:61 03:11 am and this is kind of working.
BLOG.js:61 The time is now 03:59 and things are coming good finally.
BLOG.js:61 Ok time is 04:42 going to my bed.
BLOG.js:61 5676576756575
BLOG.js:61 56756575776

此脚本将解决您的问题

    dbRefObjectPosts.on("value", function(snap){
        snap.forEach(function(childSnapshot){
            document.getElementById('object').innerHTML += (
                "Title: " + childSnapshot.val().Title + "</br>" +
                "Message: " + childSnapshot.val().Message + "</br>" +
                "Posted: " + childSnapshot.val().Posted +
                "<br/><br/>"
            );
            console.log(childSnapshot.val().Message);
        });
    });
dbreObjectPosts.on(“值”,函数(快照){
snap.forEach(函数(childSnapshot){
document.getElementById('object')。innerHTML+=(
“Title:+childSnapshot.val().Title+”
”+ “消息:“+childSnapshot.val().Message+”
”+ 已发布:“+childSnapshot.val().Posted”+ “

” ); console.log(childSnapshot.val().Message); }); });
此脚本将解决您的问题

    dbRefObjectPosts.on("value", function(snap){
        snap.forEach(function(childSnapshot){
            document.getElementById('object').innerHTML += (
                "Title: " + childSnapshot.val().Title + "</br>" +
                "Message: " + childSnapshot.val().Message + "</br>" +
                "Posted: " + childSnapshot.val().Posted +
                "<br/><br/>"
            );
            console.log(childSnapshot.val().Message);
        });
    });
dbreObjectPosts.on(“值”,函数(快照){
snap.forEach(函数(childSnapshot){
document.getElementById('object')。innerHTML+=(
“Title:+childSnapshot.val().Title+”
”+ “消息:“+childSnapshot.val().Message+”
”+ 已发布:“+childSnapshot.val().Posted”+ “

” ); console.log(childSnapshot.val().Message); }); });
尝试
.innerHTML+=…
当您执行
.innerHTML=
操作时,您可以用新值替换以前的值。@Rajesh感谢您的大部分工作,但标题只输出一次,您知道如何解决这个问题吗?只要一个指针,在循环中创建
htmlString
,并在循环后设置一次。在循环中操作DOM是一种糟糕的做法。还可以尝试记录最后一个字符串。这可能有助于你们解决标题的问题。很难将其可视化。尝试
.innerHTML+=…
当你这样做
.innerHTML=
时,你会用新的值替换以前的值。@Rajesh感谢这对它的大部分工作起到了作用,但标题只输出了一次任何想法如何解决这个问题?只要一个指针,在循环中创建
htmlString
,并在循环后设置一次。在循环中操作DOM是一种糟糕的做法。还可以尝试记录最后一个字符串。这可能有助于你们解决标题的问题。很难想象它。