1

我知道有些人会批评我想要的,但我会问我的问题。


我知道如果他们的 css 不是内联格式,我们就无法获得元素的样式。所以我想要一个正则表达式(因为我不太擅长制作一个),它将获取所有style标签,并为他们应用一个正则表达式innerHTML来制作一个像这样的数组:

css["myDiv"]["color"] -> "red"

getComputedStyle由于浏览器不兼容而没有使用。

4

1 回答 1

3

使用正则表达式无法实现任何远程接近此的目标。CSS 规则是使用复杂的算法来应用的,并且可以以各种方式继承、优先级和覆盖规则。主流浏览器花了数年时间才提出合规的实现并非巧合。

您应该准确地执行该实现。你需要的工具是 JavaScript,你需要的 API 是 DOM。对于 DOM 中的每个节点,都有一个样式对象,其中包含所有应用的样式,并且其格式与您尝试生成的格式非常接近。您可以通过getComputedStyle和访问它currentStyle

于 2012-06-06T20:50:27.423 回答