希望通过 JavaScript 获取特定元素的所有样式。getComputedStyle
工作正常,但是我很困惑它返回什么类型的对象以及如何最好地迭代它。虽然其他一些答案建议使用循环对数组进行迭代,forEach
因为大多数属性都是基于整数的,但返回的对象的其他属性是什么?
例如,使用以下命令记录元素的样式:
const styles = getComputedStyle(document.querySelector('.foo'))
for (let property in styles) {
if (styles.hasOwnProperty(property)) {
console.log('property:', property, 'value:', styles[property]);
}
}
返回(为简洁起见):
property: 0 value: align-content
property: 1 value: align-items
property: 2 value: align-self
property: 3 value: alignment-baseline
property: 4 value: animation-delay
...
property: alignContent value: normal
property: alignItems value: normal
如果它真的是一个数组,那将是有意义的,因为许多属性都是基于索引的,但是在索引 319 之后它返回到字符串alignContent
的键,是返回对象的下一个键。
此外,有没有办法只获取元素的声明样式而不是所有计算的样式?