2016-03-28 12 views
0

変換rgbからhslへ変換しています。しかし、私は値を取得しません。それはちょうど "[オブジェクトオブジェクト]"と言います。私は何か間違っていることを知っています。しかし、私は間違っていることを見つけることができません。ここでfiddleで、ここにあるコード:はjavascriptで変換された値を取得できません

$(function() { 
    function hueToRgb(t1, t2, hue) { 
     if (hue < 0) hue += 6; 
     if (hue >= 6) hue -= 6; 
     if (hue < 1) return (t2 - t1) * hue + t1; 
     else if(hue < 3) return t2; 
     else if(hue < 4) return (t2 - t1) * (4 - hue) + t1; 
     else return t1; 
    } 
    function hslToRgb(hue, sat, light) { 
     var t1, t2, r, g, b; 
     hue = hue/60;   
     if (light <= 0.5) { 
      t2 = light * (sat + 1); 
     } else { 
      t2 = light + sat - (light * sat); 
     } 
     t1 = light * 2 - t2; 
     r = hueToRgb(t1, t2, hue + 2) * 255; 
     g = hueToRgb(t1, t2, hue) * 255; 
     b = hueToRgb(t1, t2, hue - 2) * 255; 
     return {r : r, g : g, b : b}; 
    } 
    document.getElementById("slidevalue2").innerHTML = hslToRgb(0, 100, 50); 
}); 
+0

があります。これは、object.toString()を呼び出すと、 – epascarello

答えて

0

hslToRgb()
はオブジェクトではなく、文字列を返します。おそらくdocument.getElementById("slidevalue2").innerHTML = JSON.stringify(hslToRgb(0, 100, 50));を試してみたいですか?

2

innerHTMLの値をObjectに設定すると、innerHTMLの値がtoString()を呼び出して[Object object]を取得します。したがって、解決方法は出力方法によって異なります。

これにはJSON.stringify

document.getElementById("slidevalue2").innerHTML = JSON.stringify(hslToRgb(0, 100, 50)); 

を呼び出すことができます。また、作品

var parts = hslToRgb(0, 100, 50); 
document.getElementById("slidevalue2").innerHTML = "r:" + parts.r + " g: " + parts.g + " b: " + parts.b; 

を参照できるかを定義できtoString

var obj = { 
 
    r:1, 
 
    b:2, 
 
    toString : function() { 
 
     return "r: " + this.r + " b:" + this.b 
 
    } 
 
}; 
 

 
document.getElementById("out").innerHTML = obj;
<div id="out"></div>

関連する問題