我的 .ejs 文件中有以下代码。

        <div id="result_listings">
            <script>
                var inHTML = '<table style="border: 1px solid black">';
                var results = <%- JSON.str,javascript,html,node.js,ejs"/>
	














首页 > 解决方案 > .ejs 中标签的奇怪行为

我的 .ejs 文件中有以下代码。

        <div id="result_listings">
            <script>
                var inHTML = '<table style="border: 1px solid black">';
                var results = <%- JSON.str

问题描述

我的 .ejs 文件中有以下代码。

        <div id="result_listings">
            <script>
                var inHTML = '<table style="border: 1px solid black">';
                var results = <%- JSON.stringify(listings) %>;
                inHTML += '<tr style="border: 1px solid black">';
                inHTML += "<th>file</th>";
                inHTML += "<th>count</th>";
                inHTML += "</tr>"; 
                
                results.forEach(function(item, index){
                    inHTML += '<tr style="border: 1px solid black>';
                    inHTML += "<td>" + index + "</td>";
                    inHTML += "<td>" + item.file + "</td>";
                    inHTML += "<td>" + item.occurances + "</td>";
                    inHTML += "</tr>";
                })    
                inHTML += "<table>";
                document.getElementById("result_listings").innerHTML = inHTML;
            </script>
        </div>   

如果results数组有 5 个项目,尽管 forEach 循环遍历所有 5 个项目,但是,在呈现的页面上,只能看到备用索引处的内容(即本例中的 1 和 3)。不知何故,我能够通过替换来解决这个问题inHTML += '<tr style="border: 1px solid black>';inHTML += '<tr>';但为什么会发生这个问题?

我是 HTML/.ejs 的新手,所以我对此的理解较少。有人可以解释为什么会观察到这种行为吗?


你可以添加一个

"08:05:33".replaceAll(":", "")

标签: javascripthtmlnode.jsejs

解决方案


推荐阅读