我正在使用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