Javascript - 将对象键打印到 HTML

标签 javascript html object innerhtml

因此,我尝试将我的商店对象销售的每个类别的商品打印到 JavaScript 中的 HTML 文件中。当我尝试在下面这样做时,它似乎没有打印任何内容,我想知道是否有人可以告诉我我做错了什么。

我希望它打印出来:

冰淇淋

蛋糕

let dessert = {
    store: "Baskin Robbins",
    inventory: {
        "Ice cream": {
            0: {
                flavor: "Chocolate",
                cost: 15
            },
            1: { 
                flavor: "Vanilla",
                cost: 10
            }
        },
        "Cake": {
            2: {
                flavor: "Oreo",
                cost: 30
            }
        }
    }
};



function showCategories(){
    let userPicked = document.getElementById("list").value;
    var div = document.getElementById("div");   
    if(userPicked == 'dessert'){
        var categories = "Inventory";
        categories += "<br>";
        var options = Object.keys(dessert.inventory);
        categories += options;
        div.innerHTML = categories;
    }

}

还有我的 html 文件:

<html>
    <head>
        <title>Welcome</title>
    </head>
    <body>
        <div><h1>Welcome</h1></div><br />
    <div class="dropdown">
        <form>
        <select name="list" id="list" accesskey="target">
            <option value="none">Pick store</option>
            <option value="one">Desserts</option> 
        </select>
        <input type=button value="Select" onclick="showOptions()" onclick = "showCategories()"/>
        </form>
        </div>
    </div>
    <div id="div"></div>
        <script src="store.js"></script>
    </body>
</html>

最佳答案

Object.keys返回一个数组。您可以迭代数组来构建新字符串,或者简单地加入它:

categories += options.join('<br>')

编辑:您的代码中存在一些错误,导致此功能无法正常工作:

  1. 您的按钮上只有一个 onclick 属性:onclick="showCategories()"
  2. Desserts 的选项值需要与 showCategories 中的 if 语句相匹配。因此,要么将 if 条件更改为 userPicked === 'one' ,或将“甜点”选项值更改为 <option value="dessert">Desserts</option>

关于Javascript - 将对象键打印到 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59996442/

相关文章:

jquery - 疑难的Jquery <div> 问题,求高手指教

javascript - 变量声明的语法? var a = (function() { })()

Android:如何将附加对象引用传递给自定义 View

javascript - 没有页面刷新,数据不会附加到 Dropdown?

javascript - Cordova Inappbrowser - window.history.back 和forward 在executescript 函数中不起作用

javascript - 计算动态创建的 Div 元素和所有子元素的加载时间

java - registerNatives() 方法有什么作用?

javascript - 仅在关闭时隐藏窗口 [Electron]

html - Bootstrap 导航栏固定在顶部时反复跳转

html - 似乎无法摆脱我的 CSS 菜单中额外的 1px 白色边框