如何修复下拉框中的删除元素(材料化)

时间:2019-01-11 14:41:41

标签: javascript materialize

下拉框未按预期删除。

将Materialize从0.97版本迁移到1.0.0后,该功能不起作用。仅删除下拉框中的文本,而不是完整的元素。

M.AutoInit();

function removeEdit() {
    var el = document.getElementById("edit");
    el.parentNode.removeChild(el);
}
<html>
<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
</head>

<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
</body>
<!-- Record actions -->
  <ul id="actions" class="dropdown-content">
    <li><a href="#" id="edit" onclick="alert('edit')" class="black-text">Edit</a></li>
    <li><a href="#" id="delete" onclick="alert('delete')" class="black-text">Delete</a></li>
  </ul>

 <button type="button" onclick="removeEdit()">Remove element edit</button>
  
  <table class="bordered">
	<thead class='t-h'>
	  <tr class="tr-h" >
        <th>Column 1</th>
        <th>Column 2</th>
        <th>Column 3</th>
      </tr>
    </thead>
    <tbody class='t-body'>
      <tr id="1" class="tr-d dropdown-trigger" href="#" hover="false" data-target="actions">
	    <td>Row 1, column 1</td>
	    <td>Row 1, column 2</td>
	    <td>Row 1, column 3</td>
      </tr>
      <tr id="2" class="tr-d dropdown-trigger" href="#" hover="false" data-target="actions">
        <td>Row 2, column 1</td>
        <td>Row 2, column 2</td>
        <td>Row 2, column 3</td>
      </tr>
    </tbody>
  </table>
</html>

1 个答案:

答案 0 :(得分:1)

removeEdit函数中,el代表选定的<a>,因此el.parentNode代表选定的<li>

使用el.parentNode.removeChild(el)时,意味着删除所选<li>的子项,因此它会删除<a>标记。

更改:

el.parentNode.removeChild(el);

收件人:

el.parentNode.remove();

它会删除所选的<li>