javascript - 使用 javascript 创建 2 个 html 表

标签 javascript html css

我正在尝试使用 Javascript 和来自 html 输入的数据创建 2 个动态 html 表。我能够创建我想要的第一个表,但我无法在同一页面上使用不同的输入创建 2 个不同的表。

我尝试将 html 和 JS 中的 addRow() 函数更改为具有不同的名称,但这导致两个表都失败。

如有任何帮助,我们将不胜感激。这是我一直在使用的测试代码。

    <!DOCTYPE html>

<body onload="load()">
<div id="myform">

<table>
    <tr>
        <td>Name:</td>
        <td><input type="text" id="name"></td>
      </tr>
    <tr>
        <td>Age:</td>
        <td><input type="number" id="age">
            <input type="button" id="add" value="Add" onclick="addRow()"></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
    </tr>
</table>
<br>
<table>
    <tr>
        <td>Height:</td>
        <td><input type="text" id="height"></td>
    </tr>
    <tr>
        <td>Width:</td>
        <td><input type="text" id="width">
            <input type="button" id="addDim" value="Add" onclick="addRow()"></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
    </tr>
</table>

</div>
<div id="mydata">

<table id="myTableData"  border="1" cellpadding="2">
    <tr>
        <td>&nbsp;</td>
        <td><b>Name</b></td>
        <td><b>Age</b></td>
    </tr>
</table>
&nbsp;

<table id="myTableData2"  border="1" cellpadding="2">
    <tr>
        <td>&nbsp;</td>
        <td><b>Height</b></td>
        <td><b>Width</b></td>
    </tr>
</table>


</body>
</html>



function addRow() {

    var myName = document.getElementById("name");
    var age = document.getElementById("age");
    var table = document.getElementById("myTableData");

    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);

    row.insertCell(0).innerHTML= '<input type="button" value = "Delete"     onClick="deleteRow(this)">';
    row.insertCell(1).innerHTML= myName.value;
    row.insertCell(2).innerHTML= age.value;

    var width = document.getElementById("width");
    var height = document.getElementById("height");
    var table2 = document.getElementById("myTableData2");

    var rowCount2 = table2.rows.length;
    var row2 = table2.insertRow(rowCount2);

    row.insertCell(0).innerHTML = '<input type="button" value="Delete" onClick="deleteRow(this)">';
    row.insertCell(1).innerHTML = width.value;
    row.insertCell(2).innerHTML = height.value;

}

function deleteRow(obj) {
    var index = obj.parentNode.parentNode.rowIndex;
    var table = document.getElementById("myTableData");
    table.deleteRow(index);
}

function load() {
    console.log("Page load finished");
}

最佳答案

看起来在底部,您没有使用您定义的 row2 变量。

应该是:

var rowCount2 = table2.rows.length;
var row2 = table2.insertRow(rowCount2);

row2.insertCell(0).innerHTML = '<input type="button" value="Delete" onClick="deleteRow(this)">';
row2.insertCell(1).innerHTML = width.value;
row2.insertCell(2).innerHTML = height.value;

关于javascript - 使用 javascript 创建 2 个 html 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27406415/

相关文章:

javascript - 从 aurelia 类中的所有数组中删除元素

javascript - 为什么我不能删除我的事件监听器?

javascript - 通过在弹出窗口外单击来隐藏弹出窗口

javascript - 有没有办法使 HTML 页面上的文本无法选择?

jquery - javascript 阻止 css 代码

javascript - 页面刷新时的 IE input.value

php - 如何通过 jquery ajax 发送多行文本

javascript - HTML - 脚本在 JSFiddle 中工作,但当我单独运行脚本时则不起作用

javascript - 我们在 CSS/3 中有什么东西可以根据宽度动态设置高度吗?

Javascript + Chrome,控制台在我检查之前找不到元素