html - 检查 html 表中的重复行

标签 html node.js

我正在使用 Node js 和 mysql。我正在尝试检查 html 表中是否存在 mysql 数据库表中的条目。如果该条目不存在,则应添加它,否则不应添加它。但是,代码中有问题,我找不到它是什么。我想检查该行最后一个单元格中的id是否等于mysql表中记录的id。然而,每次我按下选项卡时,它都会添加重复的记录。有人可以帮忙吗?谢谢

以下是该函数的代码:

function addRow(tableID) {
        // find the number of rows in the table myreservations

        <% for(var i = 0;i<reservations.length;i++) { %>

            var table = document.getElementById(tableID);
            var rowCount = table.rows.length;
            var foundalready = false;
            var row = table.insertRow(rowCount);

            for(var i=0; i<rowCount;i++){

                if(<%- JSON.stringify(reservations[i].rid)%> == table.rows[i].cells[6].id){

                    foundalready = true;
                    break;

                }
            }

            if (foundalready == false){    
                var cell1 = row.insertCell(0);
                var element1 = document.createElement("input");
                element1.type = "checkbox";
                element1.name = "chkbox[]";
                cell1.appendChild(element1);

                var cell2 = row.insertCell(1);
                cell2.innerHTML = rowCount;

                var cell3 = row.insertCell(2);
                var element2 = document.createElement("div");
                element2.type = "text";
                element2.textContent=<%- JSON.stringify(reservations[i].tablenumber); %>;
                element2.name = "txtbox[]";
                cell3.appendChild(element2);

                var cell4 = row.insertCell(3);
                var element3 = document.createElement("div");
                element3.type = "text";
                element3.textContent=<%- JSON.stringify(reservations[i].stime); %>;
                element3.name = "txtbox[]";
                cell4.appendChild(element3);

                var cell5 = row.insertCell(4);
                var element4 = document.createElement("div");
                element4.type = "text";
                element4.textContent=<%- JSON.stringify(reservations[i].etime); %>;
                element4.name = "txtbox[]";
                cell5.appendChild(element4);

                var cell6 = row.insertCell(5);
                var element5 = document.createElement("div");
                element5.type = "text";
                element5.textContent=<%- JSON.stringify(reservations[i].priority); %>;
                element5.name = "txtbox[]";
                cell6.appendChild(element5);

                var cell7 = row.insertCell(6);
                var element6 = document.createElement("div");
                element6.type = "div";
                element6.id=<%- JSON.stringify(reservations[i].rid); %>;
                element6.name = "txtbox[]";
                element6.textContent = <%- JSON.stringify(reservations[i].rid); %>;
                cell7.appendChild(element6);
            }
                <% } %>

            }

最佳答案

我并没有真正理解完整的代码,但事实是有些事情你不能做。 1-在两个循环中您使用相同的增量变量 i。 2-您正在执行 var cell2 = row.insertCell(1); 以及您正在执行的 if 子句

if(<%- JSON.stringify(reservations[i].rid)%> == table.rows[i].cells[6].id)

你看,这个条件永远无法满足。你需要重新检查你正在考虑的对象以及周围的所有东西。

关于html - 检查 html 表中的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34532229/

相关文章:

javascript - 解析组合表情符号

node.js - 在管道之前编辑响应 header

javascript - 使用同构网络应用程序的目的是什么?

javascript - 删除正文元素

html - 如何对齐和调整 Bootstrap 列的大小?

javascript - 在 IE8 及更高版本中获取输入字段中的选定文本

node.js - 在 Express 服务器上包含并自动编译 Sass

node.js - 模块中的无限循环不工作

javascript - html onresizeend 事件,或检测调整大小结束的等效方法

html - Calibri 字体在 Mac 和 Windows 上输入的字框高度不同