【问题标题】:cannot return css property of HTML element [duplicate]无法返回 HTML 元素的 css 属性 [重复]
【发布时间】:2014-08-16 03:24:22
【问题描述】:

HTML中有元素:<div id="block"></div>,通过CSS属性:

#block { 
    background: red;
 }

如果我想在 JavaScript 中将 CSS 中的属性分配给某个变量,如下所示:

var value = document.getElementById('block').style.background // It doesn't work

我该如何解决这个问题?

【问题讨论】:

  • 您忘记了d。文件不是文件吗;)
  • 顺便说一句:对于颜色,请在 CSS 中使用 background-color,在 Javascript 中使用 backgroundColor
  • 它不适用于任何 CSS 属性
  • style 对象仅包含 本地 样式 - 那些在元素上直接设置的样式。获得通过所有样式表级联的有效样式有点痛苦,并且在(旧)IE 和其他浏览器之间有所不同。这是框架可以帮助您完成的更有用的事情之一。
  • @JacobLutin:那是因为它是通过 CSS 实现的。请参阅上面的 Pointy 的评论和下面的 j08691 的回答。

标签: javascript css


【解决方案1】:

你可以使用getComputedStyle:

var value = window.getComputedStyle(document.getElementById('block')).getPropertyValue("background-color");
console.log(value);

【讨论】:

  • 另见 this question 对于 Internet Explorer 8 及更低版本。
【解决方案2】:

您可以为此使用单行 jQuery:

var value = $("#block").css("background-color");

【讨论】:

  • 它与问题有什么关系?
  • 每当我们分配背景时:;对于元素,它被存储为该元素的背景颜色属性。根据问题,JacobLutin 想要提取 div#block 的属性 background-color 的值并将其分配给某个变量。并且 var value = $("#block").css("background-color");符合要求。
  • 我的意思是这个问题没有被标记为 jQuery。问题是无法通过 Javascript 中的“样式”属性获取属性。
  • 好的,我知道了。错误地没有专注于它。
【解决方案3】:

如果你可以在你的项目中使用 jQuery,我推荐使用 .css() jquery 函数

例如: 设置css

$('#block').css({background:'black'});

获取css:

var cssValues = $('#block').css('background'});

查看更多关于此here

【讨论】:

  • 它与问题有什么关系?
  • 您看到“获取 css”部分了吗?
  • 我的意思是这个问题没有被标记为 jQuery。问题是无法通过 Javascript 中的“样式”属性获取属性。
  • 知道了,是的,它只适用于“如果你可以在你的项目中使用 jQuery”。有时不同的方法很有用
【解决方案4】:

你可以试试这个——

var  block = document.getElementById("block");
block.setAttribute("style","background-color: red;");

【讨论】:

  • 我不需要将属性分配给元素,我需要返回它不要更改 javascript 中的属性。
猜你喜欢
  • 2017-01-12
  • 2016-04-30
  • 2014-06-10
  • 2012-06-02
  • 2018-08-13
  • 1970-01-01
  • 2014-02-23
  • 2021-07-22
  • 1970-01-01
相关资源
最近更新 更多