是否有像css的data- *属性?

时间:2011-09-28 19:35:26

标签: javascript css

我想传递一个在样式表中设置的值,以便javascript / jQuery可以读取它?我想创建一个不可见的元素并给它一个值,但是我必须在所有页面中包含该元素,这非常hacky。只是想知道是否有替代方案。

我有一个js resize脚本,用于根据区域而不是高度或宽度调整大小的图像,因此我无法为其提供maxwidth或maxheight本身。如果你给它100,它会使图像的面积= 100 ^ 2。我想我可以将元素的maxWidth设置为我想要的数字的两倍,但我只是想知道是否有一种更为合适的方式将它拉下来。

2 个答案:

答案 0 :(得分:1)

据我所知,浏览器丢弃了他们不理解的属性,所以很遗憾你不能只注入自己的数据 - *。我想你可能必须通过一个隐藏的元素来完成它,如下面所示,它使用content属性:

# styles.css
.data {
  display: none;
  content: "my data variable"
}

# index.html
<span class="data"></span>


# javascript
myData = $(".data").css('content')

<强>更新

在Chrome中播放,看起来您可以设置图片的“内容”,但不会显示。所以你可以做到

# styles.css
img {
  content: "100"
}

不确定跨浏览器的效果如何,同时查看w3c规范,它说'内容'必须与:之前或之后一起使用,所以不确定你是否会遇到验证问题。

答案 1 :(得分:0)

为什么不使用javascript来查询实际元素,并以这种方式读取它的属性?那么你根本就不依赖CSS。

$('someDiv').getWidth()