2017-04-22 5 views
0

キャンバス上の文字列に基づいてgifアイコンを表示するページがあります。例えば、「明日」。 apiからその文字列を取得することは可能です。私の質問は私のキャンバスのIDにその文字列を含む変数 "アイコン"を割り当てる方法です。もちろん、私は初心者なのでこれをやるより良い方法があります。キャンバス上のIDを変更するには

<!DOCTYPE html> 
<html > 
<head> 
    <meta charset="UTF-8"> 
    <title>Animated weather icons</title> 

     <link rel="stylesheet" href="css/style.css"> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

</head> 

<body> 


<figure class="icons"> 
    <canvas class="weatherIcon" width="64" height="64"></canvas> 
</figure> 

<script src="https://rawgithub.com/darkskyapp/skycons/master/skycons.js"></script> 

    <script> 

    $(document).ready(function weather(){ 
    $.getJSON("https://api.darksky.net/forecast/[key]/59.868098,%2017.678976?lang=sv&callback=?", 
function(json) { 
var weatherJSON = json.currently; 
var icon=weatherJSON.icon; 

    var icons = new Skycons({"color": "white"}); 

icons.set("clear-day", Skycons.CLEAR_DAY); 
icons.set("clear-night", Skycons.CLEAR_NIGHT); 
icons.set("partly-cloudy-day", Skycons.PARTLY_CLOUDY_DAY); 
icons.set("partly-cloudy-night", Skycons.PARTLY_CLOUDY_NIGHT); 
icons.set("cloudy", Skycons.CLOUDY); 
icons.set("rain", Skycons.RAIN); 
icons.set("sleet", Skycons.SLEET); 
icons.set("snow", Skycons.SNOW); 
icons.set("wind", Skycons.WIND); 
icons.set("fog", Skycons.FOG); 

var iconWeather = document.getElementsByClassName("weatherIcon"); 
iconWeather.id = icon; 


icons.play(); 

}); 
}); 

</script> 

</body> 
</html> 
+0

あなたが望むものを明確にする必要があります。その文字列を含む変数 "icon"を自分のキャンバスのidに割り当てます "キャンバス要素の' id'をオブジェクトのプロパティ 'icon.id'に設定しますか? 'canvas.id'をオブジェクト' icon'に設定しますか? ( 'id'は文字列しか保持できないのでできませんか? – Blindman67

答えて

0

試してみてください。

document.getElementsByTagName("canvas")[0].setAttribute("id", icon); 
0

期待される結果を達成するために、

オプション

の下に使用Document.getElementByClassNameは、与えられたクラス名のすべてを持っているすべての子要素の配列のようなオブジェクトを返します。

iconWeather.id = icon; iconWeather [0] .setAttribute( "id"、icon);

+0

参照用に作成されたコードページURL - https://codepen.io/nagasai/pen/ybJPpy –

関連する問題