如何使用 Javascript 制作动态 html 弹出窗口?

How to make dynamic html Pop-UP using Javascript?

我正在为餐厅的数字菜单做一个学校项目。到目前为止我所做的是这个弹出窗口:

它在按下按钮时显示,我还添加了一个 'X' 图标来关闭它。问题是它是静态的,这就是我将它存储在 index.html 文件中的方式:

<div class="menu">
<h2>Our Menu</h2>
<ul>
     <li>
         <label>
             <input type="checkbox" name="">
             <span class="icon"></span>
             <span class="list">Fried Fish With Souce</span>
         </label>
     </li>
</ul>
</div>

如您所见,数据以静态方式存储,问题是我必须为很多其他类别设置 Pop-UPS。一种解决方案是使用 Javascript 创建弹出窗口:

function showMenu()
{
    const storedMenu = [{name: "Fried Fish With Souce", checked: false}, {name:"anotherName", checked: false}];
        var content=`<div class="menu"><h2>Our Menu</h2><a href="javascript:closeMenu()" class="close-icon"></a>`;
 
        storedMenu.reduce((accumulator, currentItem) => {
        accumulator += `<ul><li><label> 
        <input type="checkbox" name="">
        <span class="icon"></span>
        <span class="list">${currentItem.name}</span>
        </label><li><ul>`;content+=accumulator;
        }, '' );
            content+="</div>";
            document.write(content);
}

这是上面源代码的输出:

问题是 document.write 似乎创建了一个全新的页面,因此 CSS 没有得到应用,它覆盖了 index.html!我的问题是,在这种情况下如何使用 Javascript 创建动态弹出窗口但保留 CSS,并且弹出窗口应该简单地出现在 index.html 之上,但是应该还是提前visible.Thanks!

document.write 仅在页面呈现期间有效。 如果您想要动态列表,请使用(示例)

<div id="docwrite"></div>

<script>
var str = "<ul><li>abc</li><li>klm</li><li>xyz</li></ul>";
document.querySelector("#docwrite").innerHTML = str;
</script>