getcomputedstyle() 的 jquery 等效项
Posted
技术标签:
【中文标题】getcomputedstyle() 的 jquery 等效项【英文标题】:jquery equivalent for getcomputedstyle() 【发布时间】:2013-10-08 20:54:54 【问题描述】:我在 javascript plugin 中发现了这个 getComputedStyle 填充物
if (!computed)
window.getComputedStyle = function(el)
this.el = el;
this.getPropertyValue = function(prop)
var re = /(\-([a-z])1)/g;
if (prop === "float")
prop = "styleFloat";
if (re.test(prop))
prop = prop.replace(re, function ()
return arguments[2].toUpperCase();
);
return el.currentStyle[prop] ? el.currentStyle[prop] : null;
;
return this;
;
getcomputedstyle() 是否有任何 jQuery 等价物;
【问题讨论】:
api.jquery.com/css? 【参考方案1】:您可以使用.css() 的getter 版本。
来自文档
.css() 方法是从 第一个匹配的元素,尤其是考虑到不同的方式 浏览器访问这些属性中的大部分(getComputedStyle() 基于标准的浏览器中的方法与 currentStyle 和 Internet Explorer 中的 runtimeStyle 属性)和不同的术语 浏览器用于某些属性。
喜欢
$(el).css('color')
【讨论】:
但这是否考虑了浏览器默认设置和/或用户 CSS?我怀疑这就是@Arya 正在寻找的“计算风格” @Plato:来自文档:“.css() 方法是一种从第一个匹配元素获取样式属性的便捷方法,尤其是考虑到浏览器访问最多的不同方式这些属性(基于标准的浏览器中的 getComputedStyle() 方法与 Internet Explorer 中的 currentStyle 和 runtimeStyle 属性)以及浏览器对某些属性使用的不同术语" @Arya 请注意,你的 polyfill 可能弊大于利 - 让 jQuery 做它的事。 看起来它确实从用户代理样式表中获取了属性:jsfiddle.net/c8RDW jQuery x getComputedStyle 不同……不一样。示例尝试$('p:before').css('color','red')
是行不通的......只有javascript 是真正的工作。 jQuery 只是插件。以上是关于getcomputedstyle() 的 jquery 等效项的主要内容,如果未能解决你的问题,请参考以下文章
window.getComputedStyle可获取 伪类元素 样式