如何移除包含指定内容的<li>元素?JavaScript代码求助
解决移除包含特定词汇的元素问题
你的takeOut函数失效有两个核心问题:
includes()方法返回的是布尔值(true/false),布尔值没有.remove()方法,直接链式调用会报错document.querySelector("li")只会选中页面中第一个- ,没法定位到
- 中任意位置的目标元素
下面是修正后的完整代码:
const WORD_BANK = [ ["day", "1"], ["month", "2"], ["year", "3"] ]; let counter = 0; function addTo() { document.getElementById("list").innerHTML += `<li>${WORD_BANK[counter][0]}<br>${WORD_BANK[counter][1]}</li>`; counter++; // 防止counter越界,循环添加 if (counter >= WORD_BANK.length) counter = 0; } function takeOut() { // 获取<ul>下的所有<li>元素 const allItems = document.querySelectorAll("#list li"); // 遍历每个元素,检查是否包含目标词汇 allItems.forEach(item => { if (item.innerHTML.includes(WORD_BANK[0][0])) { item.remove(); } }); }<ul id="list"></ul> <button id="add" onclick="addTo()">ADD</button> <button id="remove" onclick="takeOut()">REMOVE</button>关键改动说明:
- 替换元素选择方式:用
document.querySelectorAll("#list li")精准获取目标- 下的所有
- ,确保能覆盖任意位置的元素
- 正确判断并移除:遍历每个
- ,先通过
includes(WORD_BANK[0][0])判断是否包含目标词汇,再对符合条件的元素调用.remove() - 额外添加了counter越界处理,避免点击ADD按钮时超出数组范围报错
内容的提问来源于stack exchange,提问作者d50org
- 替换元素选择方式:用
相关产品推荐
相关产品推荐

