jQueryでstyleメソッドを使ってcolorプロパティーを取得すると、rgbで返ってくるので、
これを16進数にしたい場合を調査しました。
jQueryでrgb(255,255,255)を#FFFFFF形式に変換
によると、
jQuery(function(){
$(".color").click(function(){
$(".color").css({"borderColor":"#CCC"});
$(this).css({"borderColor":"blue"});
//クリックされた要素の背景色取得
var bgColor = $(this).css("backgroundColor").toString();
//背景色の余計な文字列削除
bgColor = bgColor.replace("rgb(","");
bgColor = bgColor.replace(")","");
//文字列分割
bgColor = bgColor.split(",");
//10進数を16進数に変換して連結
bgColor = "#"+parseInt(bgColor[0]).toString(16)+parseInt(bgColor[1]).toString(16)+parseInt(bgColor[2]).toString(16);
//inputに値を設定
$(this).nextAll("input[type=hidden]").val(bgColor);
});
});と記載されているが、実際、10より小さい数字に場合、違う値が返ってしまうと思っていたところ、何人かの人がコメントで突っ込みをしていた。var bgColor = $(this).css("backgroundColor").toString().match(/\d+/g);
bgColor = "#"+bgColor.map(function(t){return ("0"+(t|0).toString(16)).substr(-2)}).join("");
0 コメント:
コメントを投稿