2 回答

TA貢獻1906條經(jīng)驗 獲得超10個贊
您需要處理程序來獲取對單擊的按鈕(或其容器)的引用,以便它可以刪除容器 - 處理程序需要一個參數(shù)或者它需要檢查事件。
另一個問題是您使用的是內(nèi)聯(lián)處理程序,它有太多問題。改為使用 Javascript 附加偵聽器,在處理程序內(nèi)部,您將能夠cell
在外部范圍內(nèi)引用 ,并且.remove()
它:
button.onclick = () => cell.remove();
var mission = {
text: 'text',
date: 'date',
time: 'time'
};
const rows = document.getElementById('rows');
const cell = document.createElement('div');
cell.innerHTML = '<button type="button" class="btn btn-default" aria-label="Right Align"><span class="glyphicon glyphicon-remove" aria-hidden="true">Remove</span></button><textarea></textarea><div><input><input></div>';
rows.appendChild(cell);
const [button, textarea, dateinput, timeinput] = cell.querySelectorAll('button, textarea, input');
button.onclick = () => cell.remove();
textarea.value = mission.text;
dateinput.value = mission.date;
timeinput.value = mission.time;
<div id="rows"></div>
請注意,文檔中具有特定 ID 的元素不應(yīng)超過一個。rows
在這種情況下,無論如何都不需要容器以外的任何 id 。

TA貢獻1874條經(jīng)驗 獲得超12個贊
我建議創(chuàng)建按鈕,createElement以便您可以收聽點擊事件,并將其附加到容器,cell如下所示
// The cell which contains the button itself is being passed as a parameter
createRemoveButton = (cell) => {
const button = document.createElement('button');
button.addEventListener('click', _ => {
document.getElementById('rows').removeChild(cell);
});
// Apply any styles needed...
button.style.height = '20px';
button.innerHTML = 'Remove';
return button;
}
然后,當您創(chuàng)建div-cell元素時,只需將生成的按鈕附加到click事件的回調(diào)中。
// ...
const rows = document.getElementById('rows');
const cell = document.createElement('div');
const id = document.createAttribute('id');
id.value = 'div-cell';
cell.setAttributeNode(id);
const btn = createRemoveButton(cell);
cell.innerHTML = '<textarea></textarea><div><input><input></div>';
cell.appendChild(btn);
rows.appendChild(cell);
//...
添加回答
舉報