Jquery 如何使用自己的数据属性设置css属性?

Jquery 如何使用自己的数据属性设置css属性?,jquery,css,custom-data-attribute,Jquery,Css,Custom Data Attribute,假设我有一个小片段: <p data-color="red">Hello world</p> 出于某种原因,这是行不通的。有人知道我做错了什么吗?这指的是别的东西,而不是p。试着把它放在函数中 $('p').css('color', function() { return $(this).data('color'); }); 这指的是别的东西,不是p。试着把它放在函数中 $('p').css('color', function() { return $(this).d

假设我有一个小片段:

<p data-color="red">Hello world</p>
出于某种原因,这是行不通的。有人知道我做错了什么吗?

这指的是别的东西,而不是p。试着把它放在函数中

$('p').css('color', function() { return $(this).data('color'); });
这指的是别的东西,不是p。试着把它放在函数中

$('p').css('color', function() { return $(this).data('color'); });

您可以在设置css属性之前将整个数据存储在对象中,以避免循环。比如:

var $p = $('p'),
    data = $p.data();

$p.css({
    color: data.color,
    fontSize: data.fontSize
});​

您可以在设置css属性之前将整个数据存储在对象中,以避免循环。比如:

var $p = $('p'),
    data = $p.data();

$p.css({
    color: data.color,
    fontSize: data.fontSize
});​

$this不是p->this,因此在arg中不起作用。@Vega-有办法达到$p吗?请看Daniel的答案,这似乎是唯一的办法$这不是p->this,因此在arg中不起作用。@Vega-有办法得到$p吗?看看Daniel的答案,这似乎是唯一的办法。如果我想用一个对象文字来设置一大堆css属性呢?我想用一个each来包装它就可以了。遗憾的是,尽管我当时无法直接访问数据属性。你可以随时编写一个pluggin.True.:像这样的东西是创建插件的好借口。如果我想用一个对象文字来设置一大堆css属性呢?我想用一个each来包装它就可以了。遗憾的是,尽管我当时无法直接访问数据属性。你可以随时编写一个pluggin.True.:像这样的事情是创建插件的好借口。我喜欢它的整洁。这对于创建一个插件非常有用,该插件可以按照我所希望的方式使用数据属性。我喜欢它的整洁。这对于创建一个插件非常有用,该插件可以按照我所希望的方式使用数据属性。