【发布时间】:2022-01-15 13:35:12
【问题描述】:
如何用循环重写这段代码?
var einput1 = document.querySelector("#email0").value;
var einput2 = document.querySelector("#email1").value;
var einput3 = document.querySelector("#email2").value;
以及如何从该循环中访问特定变量?谢谢。
编辑:- 这是演示-
//fuction to genrate email field
function emailGen() {
var quant = document.getElementById("quantity").value;
var container = document.getElementById("container");
while (container.hasChildNodes()) {
container.removeChild(container.lastChild);
}
for (a = 0; a < quant; a++) {
var emailGen = document.createElement("input");
emailGen.type = "email";
emailGen.id = "email" + a;
emailGen.placeholder = "Member's Email";
container.appendChild(emailGen);
}
}
var form = document.getElementById("nameForm");
// event
form.addEventListener("submit", tableGen);
//function for table generator
function tableGen(e) {
e.preventDefault();
var body = document.getElementsByTagName("body")[0];
var table = document.createElement("table");
var tblbody = document.createElement("tbody");
var input1 = document.querySelector("#input1").value;
var quan = document.querySelector("#quantity").value;
//my question is here :-how to make this loop
var einput1 = document.querySelector("#email0").value;
var einput2 = document.querySelector("#email1").value;
var einput3 = document.querySelector("#email2").value;
//table rows loop
for (i = 0; i <= quan; i++) {
var tblrow = document.createElement("tr");
//table coloumn loop
for (j = 0; j < 1; j++) {
var tbldata = document.createElement("td");
if (i == 0 && j == 0) {
var pname = document.createTextNode(input1);
tbldata.appendChild(pname);
}
if (i == 1 && j == 0) {
var tname = document.createTextNode(einput1);
tbldata.appendChild(tname);
}
if (i == 2 && j == 0) {
var tname = document.createTextNode(einput2);
tbldata.appendChild(tname);
}
if (i == 3 && j == 0) {
var tname = document.createTextNode(einput3);
tbldata.appendChild(tname);
}
tblrow.appendChild(tbldata);
}
tblbody.appendChild(tblrow);
}
table.appendChild(tblbody);
body.appendChild(table);
table.setAttribute("border", "4");
}
<form id="nameForm">
<input type="text" id="input1" placeholder="Name"><br/>
<input type="number" id="quantity" name="quantity" placeholder="Total Members(max 10)" min="1" max="10">
<button type="button" id="okButton" onclick="emailGen()"> OK </button>
<div id="container"></div>
<br/>
<input type="submit" value="submit" onsubmit="tableGen()">
</form>
它只在输入为 3 时显示表格,因为声明的变量是 3(在问题的开头),如果我想提交 1 或 2 字段,它不会被提交。如果有任何方法可以从循环创建变量并像我在这里所做的那样访问它(einput1)
var tname = document.createTextNode(einput1);
【问题讨论】:
-
github.com/PriyalChauhan/Work-From-Home-Toolbox/blob/master/…。先生,这是我的代码。 Html 和 JavaScript 都在这个 repo 中。
-
HTML 在哪里,预期的输出和示例在哪里
-
HTML 在这里 (github.com/PriyalChauhan/PriyalChauhan.github.io) 和示例在这里 (priyalchauhan.github.io/#)
-
请单击创建按钮并为其命名,然后单击下一步。输入小于 3 ( 3 可以正常工作,因为在代码中我声明了 3 个变量)尝试提交它。我也再次编辑了这个问题,但它已关闭:(
-
请用足够多的代码更新问题,以获得minimal reproducible example - 不清楚您的意思是从该循环调用特定变量
标签: javascript loops dynamic queryselector