在Web项目中,必须将与技术业务相关的值附加到特定元素。根据这些值,决策将在客户端进行。这种方法的一大优点是,可能的是,我的情况下的CSS是由其他格式自动生成的(由管理层提供)。
我正在尝试将自己的属性添加到某些CSS类中。我有一个css类,如:
.className{
SomeProp: ThisIsTheValue;
}
在Javascript中,我需要访问此值。我尝试过这样的事情:
myVar.SomeProp
myVar["SomeProp"]
全部返回null。有没有办法可以读到这个值?可以添加我自己的CSS属性吗?
答案 0 :(得分:4)
您可以在标准JavaScript中使用getComputedStyle()
方法:
var element = document.getElementById('name'),
style = window.getComputedStyle(element),
top = style.getPropertyValue('top');
您可以随意使用top
变量,例如在警报中输出的示例中。
答案 1 :(得分:1)
SomeProp
不是有效的css
媒体资源。使用不同的方法来实现您要完成的任务。
该值可以css
的{{1}}存储在JSON
条评论中。解析css
元素的.textContent
以将值检索为style
对象。
javascript

/*{"className":{"SomeProp": "ThisIsTheValue"}}*/

答案 2 :(得分:1)
你不能通过CSS做到这一点。浏览器只会读取它知道的CSS属性而忽略其余的CSS属性。您无法以任何实际方式从JavaScript中读取它们。 而且你不应该,因为CSS用于样式,而不是用于业务逻辑。
但是,您可以使用自定义HTML属性。使用data*-attributes,您可以在HTML元素中存储额外信息,并从JavaScript中读取它以您喜欢的任何方式使用它。 Mozilla在这个问题上有一些good documentation。