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

标签 javascript html object key innerhtml

我正在 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>

最佳答案

but it instead of printing out the details of the chosen object, it just prints "[object Object]",

这是因为 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 ;

关于javascript - 如何使用 innerHTML 将对象值正确打印到 DIV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37983719/

相关文章:

javascript - 可滚动的 Bootstrap 旋转木马/ slider

javascript - 新的 google.maps.LatLngBounds() 边界扩展和中心随机工作

jquery - css jquery 动画,文本之间有延迟

HTML div bg 颜色和内容

Javascript 函数正确运行 8 次,然后每隔一次

javascript - 为什么此代码以前工作时不起作用并为随机值添加按钮

html - Wordwrap 无法与 NavMenu 和 Div 一起正常工作

class - Perl 中的对象属性访问

javascript - 在 Javascript 中是否可以创建具有动态(未确定)属性/成员的对象?

php - 计算对象中的总和