下拉框未按预期删除。
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>
最佳答案
在 removeEdit
函数,el
代表选择<a>
所以el.parentNode
代表选择<li>
.
当您使用el.parentNode.removeChild(el)
时,这意味着删除所选 <li>
的子项所以它删除了 <a>
标签。
更改:
el.parentNode.removeChild(el);
致:
el.parentNode.remove();
它会删除选定的 <li>
.
关于javascript - 如何修复删除下拉框中的元素(Materialize),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54148706/