HTML

<h1>新增学员</h1>
  <form class="info" autocomplete="off">
    姓名:<input type="text" class="uname" name="uname" />
    年龄:<input type="text" class="age" name="age" />
    性别:
    <select name="gender" class="gender">
      <option value="男">男</option>
      <option value="女">女</option>
    </select>
    薪资:<input type="text" class="salary" name="salary" />
    就业城市:<select name="city" class="city">
      <option value="北京">北京</option>
      <option value="上海">上海</option>
      <option value="广州">广州</option>
      <option value="深圳">深圳</option>
      <option value="曹县">曹县</option>
    </select>
    <button class="add">录入</button>
  </form>

  <h1>就业榜</h1>
  <table>
    <thead>
      <tr>
        <th>学号</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>性别</th>
        <th>薪资</th>
        <th>就业城市</th>
        <th>操作</th>
      </tr>
    </thead>
    <tbody>
      <!-- 
        <tr>
          <td>1001</td>
          <td>欧阳霸天</td>
          <td>19</td>
          <td>男</td>
          <td>15000</td>
          <td>上海</td>
          <td>
            <a href="javascript:">删除</a>
          </td>
        </tr> 
        -->
    </tbody>
  </table>

JS

// 1.先准备一个空数组
  const arr = []
  // 2.获取录入按钮
  const submit = document.querySelector('.info')
  // 信息框
  const uname = document.querySelector('.uname')
  const age = document.querySelector('.age')
  const gender = document.querySelector('.gender')
  const salary = document.querySelector('.salary')
  const city = document.querySelector('.city')

  //获取表格体
  const tbody = document.querySelector('tbody')
  //根据属性选择器获取所有输入框
  const items = document.querySelectorAll('[name]')
  //提交事件
  submit.addEventListener('submit',function(e){
    //阻止默认提交事件
    e.preventDefault()
    //利用循环判断所有输入框是否为空
    for (let i = 0; i < items.length; i++) {
      if(items[i].value === ''){
        return alert('内容不能为空!')
      }
  
    }

    //创建一个对象
    const obj = {
      stuId : arr.length + 1,
      uname : uname.value,
      age : age.value,
      gender : gender.value,
      salary : salary.value,
      city : city.value
    }

    //往数组里面添加对象
    arr.push(obj)
    //表单重置,清空数据
    this.reset()
    //渲染函数
    render()
  })

  //渲染
  function render() {
    //渲染之前先清空之前的内容
    tbody.innerHTML = ''

    //循环输入数组当中的数据添加带页面中
    for (let i = 0; i < arr.length; i++) {
      const tr = document.createElement('tr')
      tr.innerHTML = `<td>${arr[i].stuId}</td>
          <td>${arr[i].uname}</td>
          <td>${arr[i].age}</td>
          <td>${arr[i].gender}</td>
          <td>${arr[i].salary}</td>
          <td>${arr[i].city}</td>
          <td>
            <a href="javascript:" data-id=${i}>删除</a>
          </td>`
          //将数据添加到tbody里面
          tbody.appendChild(tr)
    }
  }

  //利用事件委托绑定删除事件
  tbody.addEventListener('click',function(e){
    if(e.target.tagName === 'A'){
      // console.log(e.target.dataset.id);
      //获取当前数据的id,利用split()函数删除该条数据
      arr.splice(e.target.dataset.id,1)
      //重新渲染
      render()
    }
  })

效果

image.png

最后修改:2022 年 09 月 15 日
如果觉得我的文章对你有用,请随意赞赏