【问题标题】:How to set the css properties with its own data-attributes?如何使用自己的数据属性设置 css 属性?
【发布时间】:2012-05-15 03:08:59
【问题描述】:

假设我有这个小sn-p:

<p data-color="red">Hello world</p>

我想将其颜色设置为自己的数据属性,如下所示:

$('p').css({

    color: $(this).data('color')
});

由于某种原因,这不起作用。有人知道我做错了什么吗?

【问题讨论】:

  • $(this) 不是 p-&gt;this,因此在 arg 中不起作用。
  • @Vega - 有没有办法到达$("p")
  • 见丹尼尔的回答,这似乎是唯一的方法。 stackoverflow.com/a/10589446/297641

标签: jquery css custom-data-attribute


【解决方案1】:

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

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

【讨论】:

  • 如果我想使用一个对象字面量来设置一大堆css属性呢?
  • 用 each 包装它会达到我猜想的效果。可惜当时我无法直接访问数据属性。
  • 你总是可以写一个插件。
  • 是的。 :) 这样的事情是创建插件的好借口。
【解决方案2】:
​$('p').css('color', function() {
    return $(this).data('color');
});​​

DEMO

【讨论】:

    【解决方案3】:

    您可以在设置 css 属性之前将整个数据存储在一个对象中以避免循环。类似的东西:

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

    http://jsfiddle.net/aYpXZ/

    【讨论】:

    • 可爱。我喜欢它的整洁。这对于创建一个可以按照我想要的方式使用数据属性的插件很有用。
    猜你喜欢
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 2014-05-04
    • 2015-10-31
    • 1970-01-01
    • 2014-07-03
    • 2015-01-04
    • 1970-01-01
    相关资源
    最近更新 更多