如何移除DOM中携带动态版本参数的第三方CSS样式表?
你之前使用的~=属性选择器的匹配规则是「属性值为空格分隔的多个单词,且其中一个单词完全等于指定值」,你的目标link的href属性中没有空格分隔的内容,因此无法匹配到元素。
方案1:使用开头匹配属性选择器(最严谨)
如果目标CSS文件的href一定以固定路径开头,可以使用^=选择器匹配以指定字符串开头的属性值:
$('link[rel="stylesheet"][href^="./admin/include/WantToRemove.css"]').remove();
方案2:使用包含匹配属性选择器(容错率最高)
如果不确定路径前是否会被拼接域名、相对路径前缀等内容,可以使用*=选择器匹配包含指定字符串的属性值:
$('link[rel="stylesheet"][href*="./admin/include/WantToRemove.css"]').remove();
补充注意事项
- 执行代码时需要确保DOM已经加载完成,建议将代码包裹在DOM就绪回调中:
$(function() { // 移除CSS的代码放在这里 }) - 如果不想依赖jQuery,也可以用原生JS实现:
document.addEventListener('DOMContentLoaded', function() { document.querySelectorAll('link[rel="stylesheet"]').forEach(link => { if (link.href.includes('/admin/include/WantToRemove.css')) { link.remove() } }) })
内容的提问来源于stack exchange,提问作者BB23
相关产品推荐
相关产品推荐

