【发布时间】:2012-01-14 12:08:33
【问题描述】:
我想知道一种以编程方式获取某个 DOM 节点和子树上的所有 css 规则和类的简单方法。
Chrome 开发工具
在 chrome 开发工具中检查元素的样式会返回 2 个面板
- 计算风格
- 样式
样式面板有 3 种不同的样式类别:
- element.style
- 匹配的 CSS 规则
- 继承自 ....
window.getMatchedCSSRules 函数非常接近开发工具中的面板匹配 CSS 规则。
我想遍历一个元素及其子元素并将匹配的 css 规则添加到字符串中。
这个updated fiddle 解释并演示了预期和不需要的结果
例子:
<a class="one to many">
<span class="even more">foo</span>
<span class="way muchMore"> bar</span>
</a>
我怎样才能得到像这样的样式规则的所有 css 类
a.one { color: red; }
.to { margin: 2em}
等等。以下函数非常接近预期结果:
// el = a DOM-Node document.getElementById(id);
function getCssText(el) {
var cssText = "";
var cssRuleList = window.getMatchedCSSRules(el, '');
for (var i = 0; i < cssRuleList.length; i++) {
cssText += cssRuleList[i].cssText + " ";
}
return cssText;
}
亚历山大指出了这个discussion about window.getMatchedCSSRules() returning null
有没有人提供插件或更复杂的功能让我检索 css 类和 domnode 的值?
【问题讨论】:
标签: javascript css dom google-chrome-devtools