嘗試為同一容器內的兩個元素賦值時,第二個操作報錯 `Cannot set property 'innerHTML' of null`。
// HTML 結構
<div id="name"><span id="idinfo"></span></div>
// JS 代碼
document.getElementById("name").innerHTML = data.body.nickname; // ①
document.getElementById("idinfo").innerHTML = data.body.nickname; // ② 報錯
語句 ① 將 `#name` 的**所有內部 HTML 替換**為純文本,導致原本嵌套在內部的 `#idinfo` 元素被銷毀。隨後語句 ② 嘗試查找已不存在的元素,返回 `null`,故報錯。
// 僅更新 span,保留外層 div 結構
document.getElementById("idinfo").innerHTML = data.body.nickname;
// 若需更新外層文本,使用 textContent 或操作子節點
document.getElementById("name").firstChild.textContent = data.body.nickname;
const html = `${data.body.nickname}`;
document.getElementById("name").innerHTML = html;
const span = document.getElementById("idinfo");
span.textContent = data.body.nickname; // 更安全,防 XSS
// 或
span.replaceChildren(document.createTextNode(data.body.nickname));