var lihtml = "<li>" + idArr[x] + "." + qArr[x] + "<li>"; // 缺少 / 關閉標簽
$(".swiper-slide:eq(0) ul").append(lihtml);
<li>內容<li>(無閉合標簽)。<li> 視為新列表項的開始,並為第一個 <li> 隱式插入 </li>。<li>內容</li><li></li> — 產生**兩個** li 元素,第二個為空。
var lihtml = "<li>" + idArr[x] + "." + qArr[x] + "</li>"; // 加上 /
$(".swiper-slide:eq(0) ul").append(lihtml);
// 1. 使用 jQuery 創建元素(自動閉合、轉義、安全)
$("<li>").text(idArr[x] + "." + qArr[x]).appendTo(".swiper-slide:eq(0) ul");
// 2. 模板字符串 + 批量 append(性能更好)
var fragments = idArr.map((id, i) => `<li>${id}.${qArr[i]}</li>`).join("");
$(".swiper-slide:eq(0) ul").append(fragments);
// 3. 原生 DOM(最高性能)
var ul = document.querySelector(".swiper-slide:eq(0) ul");
var frag = document.createDocumentFragment();
idArr.forEach((id, i) => {
var li = document.createElement("li");
li.textContent = id + "." + qArr[i];
frag.appendChild(li);
});
ul.appendChild(frag);
| 標簽 | 正確寫法 | 錯誤寫法 |
|---|---|---|
| li | <li>...</li> | <li>...<li> |
| option | <option>...</option> | <option>...<option> |
| p | <p>...</p> | <p>...<p> |
| img/input/br | <img ...> (無閉合) | <img ...></img> (無效) |
「手拼 HTML 字符串必帶閉合標簽」—— 或干脆用 $("<li>").text(...) 讓庫幫你守住合法 DOM 結構。