动态创建表格案例

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>Documenttitle>
    <link rel="stylesheet" href="css/user.css">
head>

<body>
    <h1>新增学员h1>
    <div class="info">
        姓名:<input type="text" class="uname"> 年龄:
        <input type="text" class="age"> 性别: <select name="gender" id="" class="gender">
      <option value="">option>
      <option value="">option>
    select> 薪资:
        <input type="text" class="salary"> 就业城市:
        <select name="city" id="" class="city">
      <option value="北京">北京option>
      <option value="上海">上海option>
      <option value="广州">广州option>
      <option value="深圳">深圳option>
      <option value="曹县">曹县option>

    select>
        <button class="add">录入button>
    div>

    <h1>就业榜h1>
    <table>
        <thead>
            <tr>
                <th>学号th>
                <th>姓名th>
                <th>年龄th>
                <th>性别th>
                <th>薪资th>
                <th>就业城市th>
                <th>操作th>
            tr>
        thead>
        <tbody>
            


        tbody>
    table>
    <script>
        //  1. 准备好数据后端的数据
        let arr = [{
            stuId: 1001,
            uname: '欧阳霸天',
            age: 19,
            gender: '男',
            salary: '20000',
            city: '上海'
        }, {
            stuId: 1002,
            uname: '令狐霸天',
            age: 29,
            gender: '男',
            salary: '30000',
            city: '北京'
        }, {
            stuId: 1003,
            uname: '诸葛霸天',
            age: 39,
            gender: '男',
            salary: '2000',
            city: '北京'
        }, ]

        // 获取父元素tbody
        let tbody = document.querySelector('tbody')
            // 获取录入按钮
        let btn = document.querySelector('.add');
        // 获取表单元素:
        let uname = document.querySelector('.uname');
        let age = document.querySelector('.age');
        let gender = document.querySelector('.gender');
        let salary = document.querySelector('.salary');
        let city = document.querySelector('.city');

        //渲染函数 把数组里面的函数渲染在页面中
        function render() {
            // 先干掉以前的数据  让tbody里原来的tr都没有
            tbody.innerHTML = ''
                // 再渲染新的数据
                // 根据数据的条数来渲染增加tr
            for (let i = 0; i < arr.length; i++) {
                //创建tr
                let tr = document.createElement('tr')

                //tr里面放内容
                tr.innerHTML = `  ${arr[i].stuId}
                ${arr[i].uname}
                ${arr[i].age}
                ${arr[i].gender}
                ${arr[i].salary}
                ${arr[i].city}
                
                    ${i}">删除
                `
                    // 把tr追加到tbody里
                tbody.appendChild(tr);

                //复原所有的表单数据
                uname.value = age.value = salary.value = '';
                gender.value = '男'
                city.value = '北京'
            }
        }
        // 页面加载就调用函数 写在上面下面都可以
        render();




        // 添加数据按钮

        btn.addEventListener('click', function() {
            // alert(1)
            // 获得表单里面的值,之后追加给数组arr 用push 往数组里追加的是一个对象
            arr.push({
                    //得到数组最后一条数据的学号:1003 + 1
                    stuId: arr[arr.length - 1].stuId + 1,
                    uname: uname.value,
                    age: age.value,
                    gender: gender.value,
                    salary: salary.value,
                    city: city.value
                })
                // console.log(arr);
            render(); //重新渲染我们的函数
        })




        // 删除操作 删除的也是数组里面的数据 我们用事件委托
        tbody.addEventListener('click', function(e) {
            // 只有点击了a,才会执行删除操作
            // 我们怎么知道你点击了a呢
            //console.dir(e.target.tagName);
            if (e.target.tagName === 'A') {
                // alert(1)
                // 删除操作 删除数组里面的数据 arr.splice(从哪里删,删几个)
                // 我要得到a的id 
                //console.log(e.target.id);
                arr.splice(e.target.id, 1)

                render();
            }
        })
    script>
body>

html>

user.css

* {
  margin: 0;
  padding: 0;
}

a {
  text-decoration: none;
  color:#721c24;
}
h1 {
  text-align: center;
  color:#333;
  margin: 20px 0;
 
}
table {
  margin:0 auto;
  width: 800px;
  border-collapse: collapse;
  color:#004085;
}
th {
  padding: 10px;
  background: #cfe5ff;
  
  font-size: 20px;
  font-weight: 400;
}
td,th {
  border:1px solid #b8daff;
}
td {
  padding:10px;
  color:#666;
  text-align: center;
  font-size: 16px;
}
tbody tr {
  background: #fff;
}
tbody tr:hover {
  background: #e1ecf8;
}
.info {
  width: 900px;
  margin: 50px auto;
  text-align: center;
}
.info  input {
  width: 80px;
  height: 25px;
  outline: none;
  border-radius: 5px;
  border:1px solid #b8daff;
  padding-left: 5px;
}
.info button {
  width: 60px;
  height: 25px;
  background-color: #004085;
  outline: none;
  border: 0;
  color: #fff;
  cursor: pointer;
  border-radius: 5px;
}
.info .age {
  width: 50px;
}

效果展示

动态创建表格案例_第1张图片

你可能感兴趣的:(Web,API,javascript,前端,开发语言)