1

要素の HTML ソースがあります。その中のすべての 16 進数のカラー コードを検索し、それらを対応する RGB に置き換えたいと思います。JavaScriptを使用してそれを行うにはどうすればよいですか?

例えば:

This is <span style="color:#FF0000">red</span> and <span style="color:#3C9310">green</span> color.

に置き換える必要があります

This is <span style="color: rgb(255, 0, 0)">red</span> and <span style="color: rgb(60, 147, 16)">green</span> color.
4

4 に答える 4

5

jquery を使用できますcss('color')

ライブデモ

$('#spcolor').css('color')

多くの要素を反復処理するため、同じクラスがあります。

ライブデモ

$('.someclass').each(function(){
   alert($(this).css('color'))    
});
于 2012-12-14T09:44:33.037 に答える
5

string 内のすべての 16 進数の色を 10 進数の RGB 値に変換する場合はstr、次のようにします。これは、8 ビット/チャネルの 16 進数値 (例: #FF0000) のみを考慮し、4 ビットのバリアント (例: #F00) は考慮しないことに注意してください。ただし、これは簡単に強化できます。

var rgbHex = /#([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])/gi
str.replace(rgbHex, function (m, r, g, b) {
  return 'rgb(' + parseInt(r,16) + ','
                + parseInt(g,16) + ','
                + parseInt(b,16) + ')';
})
于 2012-12-14T09:51:05.453 に答える
2

ここに示す関数を使用すると、ページ上のすべての要素の色プロパティを Hex から RGB に変更できます。

var all = document.getElementsByTagName("*");
var elemCount = all.length;

for (var i=0; i < elemCount; i++) {
    if(all[i].style.color && all[i].style.color.indexOf('#') > -1){ //Check if the color property is set, and if it's hex.
        all[i].style.color = hex2rgb(all[i].style.color)
    }
}
于 2012-12-14T09:45:10.783 に答える
1

次のようなことができます:

rgbval = "rgb("
"#ff0000".replace(/[a-z0-9]{2}/g, function(val) {rgbval  += (parseInt(val, 16)) + ","})
rgbval  += ")"

rgb(255,0,0,) のように最後に余分なコンマが追加されますが、削除できると思います。

于 2012-12-14T09:44:59.200 に答える