如何使用innerHTML 将对象值正确打印到DIV?

the*_*Guy 5 html javascript key object innerhtml

我正在 Codecademy 上一门课程,他们的许多初学者课程都使用 console.log() 命令打印到控制台。然而,我想尝试使用document.GetElementById( ) 和innerHTML,但它不是打印出所选对象的详细信息,而是只打印“[object Object]”,而 console.log() 打印键的详细信息?

这是我的代码:

<div id="myfrndDetails"></div>

<script>
var frnds = new Object();
frnds.bill = {
    firstName: "Bill",
    lastName: "Gates",
    phoneNumber: "8778787"
}

frnds.steve = {
    firstName: "Bill",
    lastName: "Gates",
    phoneNumber: "8778787"
}


var frndCard = function(frndName,frndLst) {
    for (var onefrnd in frndLst) {
        if (frndLst[onefrnd].firstName === frndName) {
            document.getElementById("myfrndDetails").innerHTML = frndLst[onefrnd];
            return frndLst[onefrnd];
        }
    }
};

frndCard("Bill",frnds);

</script>
Run Code Online (Sandbox Code Playgroud)

gur*_*372 5

但它不是打印出所选对象的详细信息,而是只打印“[object Object]”,

这是因为 frndLst[onefrnd] 是一个对象,它的toString方法将打印[object Object]

使用JSON.stringify(frndLst[onefrnd])查看此对象的 JSON 表示形式

或者,替换这一行

document.getElementById("myfrndDetails").innerHTML = frndLst[onefrnd];
Run Code Online (Sandbox Code Playgroud)

经过

document.getElementById("myfrndDetails").innerHTML = "lastname - " +  frndLst[onefrnd].lastName + " and phoneNumber " + frndLst[onefrnd].phoneNumber ;
Run Code Online (Sandbox Code Playgroud)