javascript - 函数结束时新元素消失

标签 javascript html

我创建了一个简单的表单,允许用户创建许多具有可变数量的行和列的空白表。该代码不会生成错误,并会短暂创建新的表格元素,但当函数结束时,表格就会消失。我做错了什么?

function genTable(){
    var numRows = parseInt(document.getElementById("numRows").value); // Number of rows per table
    var numCols = parseInt(document.getElementById("numCols").value); // Number of columns per table
    var numTabs = parseInt(document.getElementById("numTabs").value); // number of tables

    var startDiv = document.getElementById("start");
    var oneCell = "<td class=\"cell\"></td>"; // HTML for a single cell
    var myHTML = ""; // An empty string to contain the tables

    for(i=0; i<numTabs; i++){
        myHTML += "<div><table class=\"linesTab\" id=\"winLine" + (i+1) + "\">";

        for(k=0; k<numRows; k++){
            myHTML += "<tr>";

            for(j=0; j<numCols; j++){
            myHTML += oneCell;
            }

            myHTML += "</tr>";
        }


        myHTML += "</table><br><span class=\"tabSpan\">" + (i+1) + "</span></div>";
    }

    startDiv.innerHTML= myHTML;

}

最佳答案

听起来您在超链接或表单中内置了触发器...因此,尽管您的脚本运行,但浏览器仍会导航并刷新页面。

如果您有点击事件,则需要停止该事件的传播。

简短示例:

HTML

<div id="example">


</div>

<form>
    <input type="number" id="num" />
    <button id="clicker">
    Go
    </button>
</form>

JavaScript

document.getElementById('clicker').onclick = function () {
    document.getElementById('example').innerHTML = 'Content';
    // return false; // <-- without this (or an alternative) the form posts
}

关于javascript - 函数结束时新元素消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46477056/

相关文章:

javascript - 动态实例化 QuillJS 编辑器

javascript - 在页面上禁用链接的最佳方法是什么?

html - 除了 IE10 之外,保存为 web photoshop 在所有浏览器中看起来都很好

html - 将页脚定位在网站页面的底部

html - Fieldset 中的 DIV 层在后台打开而不是前景

css - 调整大小传感器 - 在 CSS 中按比例调整 div 大小

javascript - Vue.js v-for 不渲染组件

javascript - 是否有(或曾经有)一种方法可以更改 javascript 中 "true"关键字的值?

javascript - $ 未在 mocha chai 测试脚本中定义

javascript - Javascript 中的自定义警报无法正常工作