说我有这个小片段:
<p data-color="red">Hello world</p>
我想将其颜色设置为自己的数据属性,如下所示:
$('p').css({
color: $(this).data('color')
});
出于某种原因,这不起作用。任何人都知道我做错了什么?
答案 0 :(得分:3)
this
指的是其他内容,而不是p
。尝试将其放入函数中。
$('p').css('color', function() { return $(this).data('color'); });
答案 1 :(得分:3)
$('p').css('color', function() {
return $(this).data('color');
});
<强> DEMO 强>
答案 2 :(得分:2)
您可以在设置css属性之前将整个数据存储在对象中以避免循环。类似的东西:
var $p = $('p'),
data = $p.data();
$p.css({
color: data.color,
fontSize: data.fontSize
});