我正在嘗試洗掉附加到復選框的標簽以及復選框本身。我可以使用輕松洗掉復選框
<script>
var Check = document.createElement("input")
Check.setAttribute("name", Name);
Check.setAttribute("id", Name)
var Label = document.createElement("label")
var labelText = document.createTextNode(Name);
Label.setAttribute("for", Name)
Label.appendChild(labelText);
var LineBreak = document.createElement("br");
Check.setAttribute("type", "checkbox")
document.getElementById("MyList").appendChild(Check);
document.getElementById("MyList").appendChild(Label);
document.getElementById("MyList").appendChild(LineBreak);
Check.addEventListener('change', event =>{
document.getElementById("MyList").removeChild(event.target)
}
</script>
但我無法獲得標簽。有任何想法嗎?
uj5u.com熱心網友回復:
您已經擁有變數中標簽的句柄Label。該變數在閉包中可見。因此,您可以通過Label.remove()內部事件偵聽器函式簡單地洗掉它。
Check.addEventListener('change', event =>{
document.getElementById("MyList").removeChild(event.target)
Label.remove();
}
了解如何從 DOM 中洗掉元素
uj5u.com熱心網友回復:
您需要正確選擇 DOM 元素。Event.target正在參考您的input. 您可以使用現有元素遍歷 DOM或全域選擇它。
document.querySelector('label').remove()
編輯:在您添加更多代碼并且似乎已經在變數中包含 DOM 元素后,您可以簡單地執行Label.remove()
uj5u.com熱心網友回復:
你的嘗試太難了!只需使用以下remove()功能:
// id for element to remove
let id = 'MyList';
// removed the input with that id
document.querySelector(`#${id}`).remove();
// removes the label connected to an input with the id
document.querySelector(`[for="${id}"]`).remove();
<label for="MyList">Test</label><input type="checkbox" id="MyList">
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/517105.html
下一篇:如何將點移到中心
