<!DOCTYPE html> <html lang='en'> <head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <meta http-equiv='X-UA-Compatible' content='ie=edge'> <title>Document</title> <style> table{ width: 700px; height: auto; border: 1px solid #000; margin-top: 10px; border-spacing: 0; border-collapse: collapse } th,td{ border: 1px solid #000; text-align: center } </style> </head> <body> <form> 姓名: <input type="text"> 年龄: <input type="text"> 性别: <input type="text"> <!-- 提交的时候内容可以添加进去 但是页面会刷新:不要使用button按钮(阻止默认行为) --> <input type="button" value="提交"> </form> <table> <thead> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> <th>操作</th> </tr> </thead> <tbody> <!-- 添加的内容就写在tbody中就可以了 --> </tbody> </table> </body> </html> <script> /* 点击添加表格 - 写好结构 绑定提交事件 - 获取到输入框中的value值 - 显示在表格中 */ var username = document.querySelector('input:nth-child(1)') var sex = document.querySelector('input:nth-child(2)') var age = document.querySelector('input:nth-child(3)') var btn = document.querySelector('input:nth-child(4)') var tbody = document.querySelector('tbody') btn.onclick = function(){ // 创建td 创建tr 需要把td插入到tr tr再插入到tbody中 var tr = document.createElement('tr') var td = document.createElement('td') // 获取用户输入的value值 dom元素.value var _username = username.value // 把获取到的值放在td中 td.innerHTML = _username tr.appendChild(td) var _sex = sex.value var td = document.createElement('td') // 把获取到的值放在td中 td.innerHTML = _sex tr.appendChild(td) var _age = age.value var td = document.createElement('td') // 把获取到的值放在td中 td.innerHTML = _age tr.appendChild(td) // 新增一个删除按钮 var td = document.createElement('td') td.innerHTML = '删除' tr.appendChild(td) // 利用事件委托 给td的父级tr绑定事件 tr.onclick = function(e){ var e = e || window.event console.log(e.target) // 精准源已经拿到了 if(e.target.nodeName == "TD" && e.srcElement.innerHTML == '删除'){ // 兼容写法 // 你现在的事件源是td 点击的是tr 删除tr 父级.removeChild(子级) tbody.removeChild(e.target.parentNode) } } tbody.appendChild(tr) // 在所有的数据添加之后 需要把上次的内容给清空掉 username.value = "" sex.value = "" age.value = "" } </script>