我正在使用jquery .css()函數獲得'margin-left'屬性使用var divMargin= $('#DivId').css('margin-left')
但我得到undefined
divMargin
有時候這個工作完美和有時會導致問題
var divMargin= $('#DivId').css('margin-left');
這種意外行爲的原因是什麼?
我正在使用jquery .css()函數獲得'margin-left'屬性使用var divMargin= $('#DivId').css('margin-left')
但我得到undefined
divMargin
有時候這個工作完美和有時會導致問題
var divMargin= $('#DivId').css('margin-left');
這種意外行爲的原因是什麼?
把你的腳本中
$(document).ready(function(){
var divMargin= $('#DivId').css('margin-left');
})
所以DOM被加載
是的,我正在訪問$('#DivId'),它完全加載之前,所以現在它適用於我。謝謝哥們 – BrainCoder 2012-07-19 06:28:08
jQuery的.css()
不返回計算的樣式。如果我沒有記錯的話,它只會讓你通過.css(..)
調用設置的那些CSS屬性。爲了得到當前設置的CSS屬性,無論它是從哪裏設置,您可以使用window.getComputedStyle
使用這樣來計算樣式的元素:
window.getComputedStyle(element);
編號:https://developer.mozilla.org/en/DOM/window.getComputedStyle
保證金 - 左,你可以這樣做:
var marginLeft = window.getComputedStyle($('#DivId')[0]).marginLeft;
如果保證金餘額是速記保證金屬性的一部分,這也會起作用嗎?像這樣 - >「margin:10px 20px 30px 40px」 – Undefined 2012-07-18 12:44:26
根據'.css()'文檔,它也應該返回計算值。 – 2012-07-18 12:44:28
@Sam - 是的,它會的。它將返回最終計算的CSS屬性值。即瀏覽器用來進行渲染的值。 – techfoobar 2012-07-18 12:46:10
什麼的$( '#DIVID')的結果後運行? – 2012-07-18 12:39:38
是否使用marginLeft(JS屬性的名稱)而不是邊距左邊的幫助?它可能會有更一致的行爲。 – darma 2012-07-18 12:39:41
我認爲他應該給一些價值 – 2012-07-18 12:40:22