在 JavaScript (IE8+) 中,您可以使用document.querySelectorAll(selector)。除了高级的 jQuery 过滤方法(甚至不是 100% 肯定),这个选择器实际上几乎可以做任何你可以在 jQuery 和 CSS 中做的事情。
无论如何,如果您不希望屏幕上出现奇怪的字体,您可以这样做
document.querySelectorAll('[font-family^="serif-"]')
——这意味着“查找属性以开头serif-
并从那里开始的元素,您将获得一个可以操作的节点列表。
有关属性选择器的完整文档:转到此处。
取自 MDN
[attr]
表示属性名为 attr 的元素。
[attr=value]
表示属性名称为 attr 且其值恰好为“value”的元素。
[attr~=value]
表示属性名称为 attr 的元素,其值是以空格分隔的单词列表,其中一个恰好是“值”。
[attr|=value]
表示属性名为 attr 的元素。它的值可以正好是“value”,也可以以“value”开头,紧跟“-”(U+002D)。它可用于语言子代码匹配。
[attr^=value]
表示属性名称为 attr 且其值以“value”为前缀的元素。
[attr$=value]
表示属性名为 attr 且其值以“value”为后缀的元素。
[attr*=value]
表示属性名称为 attr 且其值包含至少一次出现的字符串“value”作为子字符串的元素。
这些选择器应该在您的情况下使用,将它们结合起来document.querySelectorAll(selector)
,您会玩得很开心;)
编辑
因此,要在此处添加一些有关您需要执行的操作的额外详细信息:
- 使用有问题的字体获取所有元素
document.querySelectorAll()
for
使用构造循环集合中的元素
- 在循环内
element[i].style.fontFamily = 'new-family'
用于替换所有字体。
有关更改样式的完整文档,请转到此处
您要做的是首先找到有问题的元素,例如那些带有恼人字体的元素。如果这些具有始终包含的内联样式,那font-family
将不难。
homebrew snippet (untested)
//获取内联 [style] 属性包含 font-family 的元素 var fuckingFontElements = document.querySelectorAll('[style*="font-family"]')
//loop all the elements to replace the font
for (var i = 0; i < annoyingFontElements.length; i++) {
//actually do the replacing
annoyingFontElements[i].style.fontFamily = 'nice-font'
}