我的 html 代碼包含一個<ul id="users"></ul>,然后用 JS 代碼動態填充
const li = document.createElement("li");
li.appendChild(document.createTextNode(`${nameInput.value} : ${emailInput.value}`)
我在 html 代碼中添加了一個按鈕來洗掉其中的所有用戶<ul>,例如:<button id="del-user-list" onClick="deleteUserList()">Delete User List</button>.
我的 JS 代碼中的 deleteUserList 函式如下所示:
function deleteUserList() {
while (userList.firstChild != "") {
userList.firstChild.remove();
}
}
這在表面上是有效的,但是我意識到在最后一個孩子之后,我的函式將再次檢查一個不存在的孩子的價值。我記得在學習 C 和玩鏈表時,你不想取消參考指向null.
果然,當我查看控制臺時,我得到了
Uncaught TypeError: Cannot read properties of null (reading 'remove') at deleteUserList (main.js:31:25) at HTMLButtonElement.onclick ((index):29:77)
這是一個問題嗎?我該怎么辦?我剛開始玩 Javascript,現在對這些東西是如何作業的不太了解。
uj5u.com熱心網友回復:
您應該將其與比較運算子進行比較或完全省略比較運算子,而不是與userList.firstChild空字串進行比較:null
while (userList.firstChild != null)
// or
while (userList.firstChild)
后一個有效,因為轉換null為布林值回傳false
null != ''將永遠是true,因為userList.firstChild無論如何都不會是空字串。它將是一個 DOM 節點或null.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/426158.html
標籤:javascript 指针 dom 空值
上一篇:從另一個#documentJavaScript!Doctype獲取價值
下一篇:如何通過ID獲取xhtml元素?
