删除所有与内联字体相关的标记,即使它在内联样式中也是如此
Remove all inline font related tags even if its within an inline style
我有一个DOM,在这个DOM中,我加载了整个网页的HTML。我想删除所有与字体相关的标签,即使它在样式标签中。
这里有一个纯Javascript函数,它将把任何指定的标签集转换为<span>
:
function stripFonts(el, tags) {
if (el.tagName && el.tagName in tags) {
// replace the element with a span
var old = el, el = document.createElement('span');
old.parentNode.replaceChild(el, old);
// and move the children
while (old.hasChildNodes()) {
el.appendChild(old.firstChild);
}
}
// recursive test all of this node's children
var child = el.firstChild;
while (child) {
child.removeAttribute('style'); // NB: removes *all* style attributes
stripFonts(child, tags);
child = child.nextSibling;
}
}
var tags = { 'B': 1, 'FONT': 1, 'STRIKE': 1 };
演示在http://jsfiddle.net/alnitak/4fBRQ/
使用<span>
简化了代码,因为它维护了原始DOM树,并避免了将相邻的文本节点折叠在一起的需要。
添加要剥离的额外标签是微不足道的。它将需要一些额外的工作来处理特定于字体的内联样式标记,尽管删除每个style
属性很容易,如下所示。
$("font").attr("face", "");
$("*").css("font", "");
您可以使用jQuery 清除font元素的事实属性并清除DOM中的所有css中的font feom
相关文章:
- 将Div内容复制到文本区域或具有相同字体族样式的文本
- 尝试在随机文本和图像脚本中添加样式/更改字体
- 是否可以在网页上用另一种字体设置jqmath-display的样式
- 在 JavaScript 输出中设置字体样式
- jquery匹配以px为单位的样式字体大小的元素
- 删除所有与内联字体相关的标记,即使它在内联样式中也是如此
- 如何在所有元素中使用 jQuery 删除除字体粗细之外的所有样式
- 设置内容样式包含字体系列、字体大小和颜色的可编辑列表 (
- )
- 织物 js 粗斜体不起作用,因为 JSON 中的字体样式对象
- 更改 JavaScript 中所选文本的字体样式
- javascript中一个按钮样式的两种字体类型
- 如何在应用程序中更改字体样式
- 我想在获取和解析DOM树后更改特定节点内容的字体样式
- 输入字段的样式字体(Angularjs)
- 下拉选择字符串字体样式更改
- 使用字体样式复制到剪贴板
- javascript(动态)表单的CSS字体和背景样式
- 字体Awesome与半样式CSS
- CSS—根据字体大小选择元素,并动态地将样式应用于该文本
- 通过样式设置字体族.字体不工作,除非字体大小也设置