8

我正在data-position通过 jQuery 在几个 div 上设置文档准备好的属性。该设置绝对有效。例如,在 Chrome 控制台中调用以下代码将返回'left'.

$('.card-container').data('position');

但是在 CSS 中,下面没有做任何事情。

[data-position='left']

div 中的硬编码data-position="left"虽然有效。我究竟做错了什么?谢谢您的帮助

4

3 回答 3

16

按原样设置data属性意味着它存储在 jQuery 的缓存中(它是内存中的一个对象),它不会被设置为元素的属性,因此没有 CSS 选择器会看到它。

您需要手动设置data使用attr此属性的属性:

$('.card-container').attr('data-position', 'left');

但是请注意,尽管我们说的是毫秒,但在检索数据值时,这会稍微降低性能。

于 2013-10-15T10:45:07.280 回答
2
$('.card-container').attr('data-position',"set your value");

参考属性

于 2013-10-15T10:42:18.360 回答
0

jQuery 的data()方法实际上并没有改变属性。为了更改元素本身的属性,您必须使用attr()

$('.card-container').attr('data-position', 'value');
于 2013-10-15T10:42:36.500 回答