Javascript 使用jQuery获取CSS中指定的实际值 解释

Javascript 使用jQuery获取CSS中指定的实际值 解释,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我不敢相信以前没有人问过这个问题,但无论如何。。。请不要对此感到困惑 我试图使用jQuerydata方法存储元素的高度,以便检索该值并重置特定元素的原始值 但是,当我尝试获取元素的高度时,它返回计算的高度,而不是实际的CSS值。虽然这在其他情况下非常有用,但我实际上需要获得样式表中指定的确切值,无论它是100%、自动、10px等等 我的问题 有没有办法使用jQuery获得元素的确切CSS(非计算)值 例如(CSS): 和JS: // Returns 'auto' NOT computed val

我不敢相信以前没有人问过这个问题,但无论如何。。。请不要对此感到困惑

我试图使用jQuery
data
方法存储元素的高度,以便检索该值并重置特定元素的原始值

但是,当我尝试获取元素的高度时,它返回计算的高度,而不是实际的CSS值。虽然这在其他情况下非常有用,但我实际上需要获得样式表中指定的确切值,无论它是100%、自动、10px等等

我的问题 有没有办法使用jQuery获得元素的确切CSS(非计算)值

例如(CSS):

和JS:

// Returns 'auto' NOT computed value...
var height = $('#wrapper').height();
进一步资料 我目前看到的唯一替代方法是删除我元素上的内联
style
标记,这将删除jQuery应用的所有样式。这种方法的明显缺陷是,它将删除所有样式,而不仅仅是一个特定的样式

有没有办法使用jQuery获得元素的确切CSS(非计算)值

只能通过DOM检索
px
中的计算值


也就是说,您可以通过获取元素高度并将其与父元素的高度进行比较来计算百分比
em
en
和其他测量是不可能的。

使用jQuery只能获得计算值

作为替代方案,我编写了一个脚本,通过枚举应用于页面的样式表,匹配选择器,并根据优先级和css特殊性对其进行加权,来查找原始css值

这对于找出某个东西是
自动的
还是
100%
还是固定大小的比较方便

用法:

resolveAppliedStyle(document.getElementById("wrapper"), "height");
您可以从以下位置获取resolveAppliedStyle的脚本:

以及用于计算特异性的脚本:


你拿不到它。(仅在加载DOM和计算值之后)不,您不能访问原始样式数据,只能访问计算的样式数据styles@LimH. 你读过这个问题了吗?@FlorianMargaine Sorry可能是-的复制品,有一个,这是错误的。您可以通过解析CSS文件来获得它。不是我推荐的,但它是可行的。@FlorianMargaine true。我通过DOM向我的答案添加了
。如果你想用Javascript编写CSS解析器,你比我更勇敢;)DOM通过
document.stylesheets
提供对所有CSS的访问。也就是说,CSS解析器并不难编写。我不建议这样做,因为这通常意味着其他方面出了问题。请随意回答这个问题。我不是在开玩笑,我很想看看它是怎么做的,因为我自己从来没有见过。@Rorymcrossan,我想是的,真烦人!无论如何,谢谢:-+1太好了,谢谢+1.
resolveAppliedStyle(document.getElementById("wrapper"), "height");