从表中添加/删除行

yog*_*sma 24 javascript html-table

我有这个表有一些dependents信息,每个行都有一个添加和删除按钮来添加/删除其他dependents.当我单击"添加"按钮时,会在表中添加一个新行,但是当我单击"删除"按钮时,它会首先删除标题行,然后在后续单击时删除相应的行.

这是我有的:

Javascript代码

   function deleteRow(row){
      var d = row.parentNode.parentNode.rowIndex;
      document.getElementById('dsTable').deleteRow(d);
   }
Run Code Online (Sandbox Code Playgroud)

HTML代码

<table id = 'dsTable' >
      <tr>
         <td> Relationship Type </td>
         <td> Date of Birth </td>
         <td> Gender </td>
      </tr>
      <tr>
         <td> Spouse </td>
         <td> 1980-22-03 </td>
         <td> female </td>
         <td> <input type="button" id ="addDep" value="Add" onclick = "add()" </td>
         <td> <input type="button" id ="deleteDep" value="Delete" onclick = "deleteRow(this)"  </td>
      </tr>
       <tr>
         <td> Child </td>
         <td> 2008-23-06 </td>
         <td> female </td>
         <td> <input type="button" id ="addDep" value="Add" onclick = "add()"</td>
         <td>  <input type="button" id ="deleteDep" value="Delete" onclick = "deleteRow(this)" </td>
      </tr>
   </table>
Run Code Online (Sandbox Code Playgroud)

Dan*_*.K. 43

JavaScript进行了一些修改:

function deleteRow(btn) {
  var row = btn.parentNode.parentNode;
  row.parentNode.removeChild(row);
}
Run Code Online (Sandbox Code Playgroud)

和HTML有一点区别:

<table id="dsTable">
  <tbody>
    <tr>
      <td>Relationship Type</td>
      <td>Date of Birth</td>
      <td>Gender</td>
    </tr>
    <tr>
      <td>Spouse</td>
      <td>1980-22-03</td>
      <td>female</td>
      <td><input type="button" value="Add" onclick="add()"/></td>
      <td><input type="button" value="Delete" onclick="deleteRow(this)"/></td>
    </tr>
    <tr>
      <td>Child</td>
      <td>2008-23-06</td>
      <td>female</td>
      <td><input type="button" value="Add" onclick="add()"/></td>
      <td><input type="button" value="Delete" onclick="deleteRow(this)"/></td>
    </tr>
  </tbody>
</table>???????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

  • 也是如此,但jQuery是一个额外的32K代码,甚至是压缩和gzip压缩. (3认同)
  • +1用于识别.但是你永远不应该托管文件.您应该使用Google的CDN来托管它.我敢打赌,绝大多数浏览互联网的人已经在其他网站的计算机上拥有它,如果不是谷歌的话. (2认同)

soy*_*nte 10

jQuery有一个很好的功能,可以从DOM中删除元素.

最近的()函数很酷,因为它会"获得通过自身测试元素,并通过其祖先向上遍历选择相匹配的第一个元素."

$(this).closest("tr").remove();

每个删除按钮都可以通过函数调用运行非常简洁的代码.

  • 除了用于控制行删除之外,jquery还可以帮助绑定行动作,这样你就不会有突然的js调用,而是可以在你的按钮`class ="addDep"`上使用它(注意:id不能多用)而不是一次)然后在js做`$('.addDep').on('click',add);`和`$('.deleteDep').on('click',deleteRow);` (2认同)