如何用JavaScript检测并删除含PDF/DOC扩展名的列表元素
解决方案
你的代码存在两个问题:
- 条件判断错误:
|| (".doc")是无效写法,非空字符串在布尔判断中永远为true,导致不管有没有.doc,条件都会成立。 - 仅检查父元素的innerHTML无法定位到具体要删除的列表项。
正确的做法是遍历每个列表项,逐个检测是否包含目标扩展名,匹配到就删除该元素:
// 获取所有带.style类的列表项 const listItems = document.querySelectorAll('#myList .style'); // 遍历每个项 listItems.forEach(item => { // 获取文件名文本并转成小写(避免大小写差异) const fileName = item.querySelector('div').textContent.toLowerCase(); // 同时检查图片链接里的扩展名 const imgUrl = item.querySelector('img').src.toLowerCase(); // 检查是否包含.pdf或.doc if (fileName.includes('.pdf') || fileName.includes('.doc') || imgUrl.includes('.pdf') || imgUrl.includes('.doc')) { // 删除当前列表项 item.remove(); } });
说明
- 使用
querySelectorAll获取所有列表项,确保能遍历到每一个元素。 - 转成小写是为了兼容
.PDF、.Doc这类大小写不同的扩展名。 - 同时检查文件名文本和图片链接,避免漏删那些文件名显示正常但链接是PDF/DOC的项。
- 调用
element.remove()直接删除匹配到的元素。
内容的提问来源于stack exchange,提问作者Vzupo
相关产品推荐
相关产品推荐

