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

这是我的代码:

<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>

最佳答案



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

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

或者,替换此行

document.getElementById("myfrndDetails").innerHTML = frndLst[onefrnd];

通过
document.getElementById("myfrndDetails").innerHTML = "lastname - " +  frndLst[onefrnd].lastName + " and phoneNumber " + frndLst[onefrnd].phoneNumber ;

09-28 02:56