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 等效项的主要内容,如果未能解决你的问题,请参考以下文章

getComputedStyle方法的那些事

深入理解getComputedStyle

getComputedStyle

window.getComputedStyle可获取 伪类元素 样式

JavaScript window.getComputedStyle()

getcomputedstyle() 的 jquery 等效项