javascript - 对象 HTMLInputElement 出现而不是复选框
问题描述
我试图在按下 Add Item 按钮后在 Collected 列中出现一个复选框,但是,[object HTMLInputElement] 出现了。我已经尝试过 appendChild、insertBefore 和删除 innerHTML,但显然这让事情变得更糟。我曾尝试在 Google 和 Stackoverflow 上搜索类似问题以获得相关答案,但没有人遇到与我类似的情况。
function addItem() {
var a = String(document.getElementById("it").value);
var b = parseFloat(document.getElementById("iq").value);
if (a.length === 0 || isNaN(b)) {
window.alert("Required field empty, please enter values in both boxes.");
} else {
var table = document.getElementById("list");
var row = table.insertRow(-1);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cb = document.createElement("INPUT");
cb.setAttribute("type", "checkbox");
cell1.innerHTML = a;
cell2.innerHTML = b;
cell3.innerHTML = cb;
}
}
<table id="list" align="center">
<tr>
<td colspan="3">
<input id="it" name="item" type="text" placeholder="Item" />
<input id="iq" name="quantity" type="text" placeholder="No." />
<br />
<input value="Add Item" type="submit" onclick="addItem()" />
<hr />
</td>
</tr>
<tr>
<td><span>Item</span></td>
<td><span>Quantity</span></td>
<td><span>Collected</span></td>
</tr>
</table>
解决方案
您需要使用 appendChild 而不是覆盖单元格的 innerHTML。您正在向 DOM 添加一个新元素。这可以通过将 HTML 写入单元格来完成,但您已经创建了元素,所以只需附加它..
function addItem() {
var a = String(document.getElementById("it").value);
var b = parseFloat(document.getElementById("iq").value);
if (a.length === 0 || isNaN(b)) {
window.alert("Required field empty, please enter values in both boxes.");
} else {
var table = document.getElementById("list");
var row = table.insertRow(-1);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cb = document.createElement("INPUT");
cb.setAttribute("type", "checkbox");
cell1.innerHTML = a;
cell2.innerHTML = b;
cell3.appendChild(cb);
}
}
<table id="list" align="center">
<tr>
<td colspan="3">
<input id="it" name="item" type="text" placeholder="Item" />
<input id="iq" name="quantity" type="text" placeholder="No." />
<br />
<input value="Add Item" type="submit" onclick="addItem()" />
<hr />
</td>
</tr>
<tr>
<td><span>Item</span></td>
<td><span>Quantity</span></td>
<td><span>Collected</span></td>
</tr>
</table>
推荐阅读
- batch-file - 各种 CMD 命令的问题
- javascript - 无法在字符串“test1”上创建属性“selectedTest” - Angular 的问题
- angularjs - 使用 nvd3.js 自定义甜甜圈图
- arm - memcpy 手臂的位置
- java - 如何制作可执行文件以将带有rest api的Maven java Web项目部署到服务器
- android - 同一扩展 Activity Android 中的不同键盘类型(键盘中的 Tab 键或“右箭头按钮”)
- python - 使用现有 SQLite 数据库中的两列使用 Python 创建第三列
- events - 在本地时间解析 IBM MQ Event Monitoring 消息
- powershell - Powershell 更改扩展
- java - 附加字符串的奇怪行为