[英]How do I add text boxes and buttons into a table using Javascript?
抱歉,我是Java語言的新手,這是我制作的第一批網站之一。 我想知道為什么我的代碼無法正常工作。
在應該顯示它們的單元格中,而不是顯示文本框和按鈕,而是顯示了[object HTMLInputElement]和[object HTMLButtonElement]。
function frenchBread(x){
var table = document.getElementById("orderTable");
var row = table.insertRow(0);
var rem = document.createElement("button");
var name = document.createTextNode("Remove");
rem.appendChild(name);
var num = document.createElement("input");
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
cell1.innerHTML = "French Bread";
cell2.innerHTML = document.body.appendChild(num);
cell3.innerHTML = document.body.appendChild(rem);
x.disabled = true;
}
<button type = "button" class = "itemClick" onclick = "frenchBread(this);">French Bread</button>
<table id = "orderTable">
</table>
只需追加變量,無需調用innerHTML
:
cell1.innerHTML = "French Bread";
cell2.appendChild(num);
cell3.appendChild(rem);
代替:
cell1.innerHTML = "French Bread";
cell2.innerHTML = document.body.appendChild(num);
cell3.innerHTML = document.body.appendChild(rem);
在對代碼進行調整之前,我添加了一些HTML,以便可以運行它。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<button type = "button" class = "itemClick" onclick = "frenchBread(this);">French Bread</button>
<table id="orderTable"></table>
<script>
function frenchBread(x){
var table = document.getElementById("orderTable");
var row = table.insertRow(0);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var rem = document.createElement("button");
var name = document.createTextNode("Remove");
rem.appendChild(name);
var num = document.createElement("input");
cell1.innerHTML = "French Bread";
cell2.appendChild(num);
cell3.appendChild(rem);
x.disabled = true;
}
</script>
</body>
</html>
您的代碼失敗的原因是您分配給cel1的innerHTML的文本“ French Bread”是有效的HTML。innerHTML只能接受有效HTML的字符串。由於rem和num是DOM,因此它不適用於cel2和cel3。因此,可以使用這兩個單元格元素的appendChild成員函數將它們分配為cel2和cel3(也是DOM元素)的子代。您試圖通過innerHTML做到這一點,JavaScript必須將這些DOM元素轉換為文本,因此您看到的文本是由於JS對象轉換為字符串而產生的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.