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