2013-03-31 13 views
0

我想设置一个自定义属性到目标元素的CSS属性(字体大小)。JQuery - 获取选择器内的CSS属性

$('.font-900').attr('data-resfont', <font-size here>); 

我想:我如何从像选择中访问CSS

$('.font-900').attr('data-resfont', this.css('font-size')); 

我猜这将无法正常工作“这”指的是ATTR功能。我的下一步是:

$('.font-900').attr('data-resfont', this.target.css('font-size')); 

这似乎并不奏效。我想我错过了一些简单的东西。

回答

0

您可以使用函数作为第二个参数.attr其在集合中的每个元素迭代(你不能.data做到这一点还是我会使用建议)。

$(".font-900").attr('data-resfont', function() { 
    return this.style.fontSize; 
}); 
+0

完美!谢谢。 –

1

有这样做的多种方法:在每一个匹配元素

  • 迭代:
$('.font-900').each(function() { 
    $(this).attr('data-resfont', $(this).attr('font-size')) 
}); 
  • 创建一个变量赋值:
var e = $('.font-900'); 
e.css('data-resfont', e.attr('font-size'); 
  • 使用函数来设置属性
$(".font-900").attr('data-resfont', function() { 
    return this.style.fontSize; 
}); 
+1

这是一个完美的答案,但有人打你到我正在寻找的解决方案。它唯一公平的接受他们的答案。如果可以的话,我会投你一票! –

+0

不是'.each'而不是'.forEach'? –