獲取dom的最終的css屬性值

專注前端30年發表於2017-11-10

需求

我們有的時候需要測試看一下屬性是否設定成功,所以需要通過dom去獲取css樣式。但是,如果使用原生去獲取的話,會發現只有在dom身上設定的才能夠獲取的到,如dom.style.width,只有直接寫到標籤上,才能夠獲取的到,而在別的地方的我們將獲取不到,今天我們就研究一下,直接獲取寫在style標籤的css屬性。就像jq的css()方法一樣

getComputedStyle方法

我們可以通過getComputedStyle方法去獲取一個dom最終的屬性樣式,不管在什麼地方定義的。

語法

let style = window.getComputedStyle(element, [pseudoElt]);
  • element
    用於獲取計算樣式的Element
  • pseudoElt 可選
    指定一個要匹配的偽元素的字串。必須對普通元素省略(或null)。
  • 返回的結果
    返回的樣式是一個實時的 CSSStyleDeclaration 物件,當元素的樣式更改時,它會自動更新本身。

封裝方法

我們可以將這個封裝一個簡單的方法使用,每次獲取的時候呼叫一下方法就行了

function getTheStyle(dom,style){
    return window.getComputedStyle(dom, null)[style];
}
  • dom
    一個dom物件,獲取樣式的目標dom
  • style
    需要獲取的dom物件的屬性的值
  • 返回
    返回當前相關需要獲取的值

相關文章