如何比较用户在HTML表中选择的值以及存储在对象数组中的值
让用户从HTML表单元格中的下拉列表中选择数据,并将其与一系列对象进行比较,并根据决策提示一些消息。
我有各种各样的对象:
const tabledata = [
{
name: "George Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "",
},
{
name: "George A. Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "A",
},
{
name: "George Allan Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "Allan",
},
{
name: "George Robert Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "Robert",
},
{
name: "Simon Cowell",
keyUnit: "Cowell",
unit2: "Simon",
unit3: "",
},
];
我正在基于此来创建数据。
我首先希望用户从表单元格中的下拉列表中选择数据,并希望将其与上述对象数组进行比较。 em>
const tabledata = [{
name: "George Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "",
},
{
name: "George A. Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "A",
},
{
name: "George Allan Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "Allan",
},
{
name: "George Robert Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "Robert",
},
{
name: "Simon Cowell",
keyUnit: "Cowell",
unit2: "Simon",
unit3: "",
},
];
let headers = ["name", "key Unit", "unit2", "unit3"];
const generateTable = (tableID) => {
let selectedTable = document.querySelector(`#${tableID}`);
let table = document.createElement("table");
table.classList.add("table");
table.classList.add("custom");
let headerRow = document.createElement("tr");
headers.forEach((headerText) => {
let header = document.createElement("th");
let textNode = document.createTextNode(headerText);
header.appendChild(textNode);
headerRow.appendChild(header);
});
table.appendChild(headerRow);
tabledata.forEach((data) => {
let row = document.createElement("tr");
Object.values(data).forEach((text) => {
let cell = document.createElement("td");
let textNode = document.createTextNode(text);
cell.appendChild(textNode);
row.appendChild(cell);
});
table.appendChild(row);
});
selectedTable.appendChild(table);
};
generateTable("table1");
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
<div class="row">
<div class="col-12">
<div class="table-responsive" id="table1">
</table>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js"></script>
let user select data from the dropdown in HTML table cell and compare it with an array of objects and prompt some message based on the decision.
I have an array of objects:
const tabledata = [
{
name: "George Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "",
},
{
name: "George A. Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "A",
},
{
name: "George Allan Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "Allan",
},
{
name: "George Robert Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "Robert",
},
{
name: "Simon Cowell",
keyUnit: "Cowell",
unit2: "Simon",
unit3: "",
},
];
I am creating data based on this.
I firstly want the user to select data from the dropdown in the table cell and want to compare it with the above array of objects if it's matched then prompt all answers are correct else wrong.
const tabledata = [{
name: "George Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "",
},
{
name: "George A. Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "A",
},
{
name: "George Allan Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "Allan",
},
{
name: "George Robert Clooney",
keyUnit: "Clooney",
unit2: "George",
unit3: "Robert",
},
{
name: "Simon Cowell",
keyUnit: "Cowell",
unit2: "Simon",
unit3: "",
},
];
let headers = ["name", "key Unit", "unit2", "unit3"];
const generateTable = (tableID) => {
let selectedTable = document.querySelector(`#${tableID}`);
let table = document.createElement("table");
table.classList.add("table");
table.classList.add("custom");
let headerRow = document.createElement("tr");
headers.forEach((headerText) => {
let header = document.createElement("th");
let textNode = document.createTextNode(headerText);
header.appendChild(textNode);
headerRow.appendChild(header);
});
table.appendChild(headerRow);
tabledata.forEach((data) => {
let row = document.createElement("tr");
Object.values(data).forEach((text) => {
let cell = document.createElement("td");
let textNode = document.createTextNode(text);
cell.appendChild(textNode);
row.appendChild(cell);
});
table.appendChild(row);
});
selectedTable.appendChild(table);
};
generateTable("table1");
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
<div class="row">
<div class="col-12">
<div class="table-responsive" id="table1">
</table>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js"></script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)