复制内联css属性并将其粘贴为html

时间:2012-03-29 10:54:31

标签: jquery

我想复制background-color值并将其粘贴到<strong>标记中:

<span class="swatch" style="background-color: #d1f2a5;"><strong>paste here</strong><em></em></span>

复制/粘贴会有多个实例。

2 个答案:

答案 0 :(得分:3)

您可以使用.css()

来实现这一目标
$('span.swatch > strong').css('background-color', $('span.swatch').css('background-color'));

Demo

或更通用的方法:

var strong = $('span.swatch > strong');
strong.css('background-color', strong.parent().css('background-color'));

Demo

更新

我刚才意识到我可能误解了你的问题,这里是你如何将背景颜色设置为html内部文本:

var strong = $('span.swatch > strong');
strong.html(strong.parent().css('background-color'));

Demo

另请参阅vzwick`s answer converting the rgb string to the commonly used hex format

答案 1 :(得分:1)

如果我正确地提出了您的问题,您希望以编程方式将背景颜色的插入<strong>,对吧? - Working fiddle here

$('span.swatch').each(function(i,e){
    bgcolor = rgbToHex($(e).css('background-color'));
    $('> strong', e).html(bgcolor);
});

function rgbToHex(rgbString) {
    var parts = rgbString.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);

    delete (parts[0]);
    for (var i = 1; i <= 3; ++i) {
        parts[i] = parseInt(parts[i]).toString(16);
        if (parts[i].length == 1) parts[i] = '0' + parts[i];
    } 
    var hexString ='#'+parts.join('').toUpperCase(); // "#0070FF"
    return hexString;
}

P.S。:rgbToHex()公然stolen from here - 所有功劳归于nickf.