2016-10-26 30 views
0

我正在從omdb json對象中獲取imdb評級,並嘗試爲每個評級生成等效的svg星星。爲每個imdb評級生成相應的svg星級jquery

在我的例子中,電影的評級爲8.0。我不知道爲什麼,但在我的代碼目前我正在用克隆生成11顆星。或者,我想我可以使用一系列星星來爲每個評級添加多顆星星。我有30部不同評級的電影。我怎樣才能爲每個評級生成等效星星?

$(document).ready(function() { 

movie = { 
Title: "The Exorcist", 
Year: "1973", 
Metascore: "82", 
imdbRating: "8.0", 
} 
    // red star 
    const $star = $(`<svg width="75" height="50"><polygon points="25,2.5, 10,49 47.5,17.5, 2.5,17.5,40,49" style="fill:red;stroke:none;stroke-width:5;"/></svg>`); 

    // movie rating 
    const rate = parseInt(movie.imdbRating); 
    $(".row").text(`Movie IMDB Rating: ${rate}`); 

    // 10 star array 
    const ratingStars =[$star,$star,$star,$star,$star,$star,$star,$star,$star,$star]; 

for(let i = 0; i <= ratingStars.length; i++) { 
    if(rate === 8) { 
    $star.clone().appendTo($("#star")); 
} 
} 

});

+0

'我<='應該是'I''這就是爲什麼你會得到11 ...但for循環的其餘部分是沒有意義的,因爲它只會做任何事情,如果速度=== 8 –

+0

謝謝你指出這一點......我只是把八個例子 - 我不是確定最好的方法是處理不同的評級數字 – TYPOI

+0

我在想什麼'if(rate === 8){'故事 –

回答

0

你想要做的是

for(let i = 0; i < rate; i++) { 
    $star.clone().appendTo($("#star")); 
} 

因此,如果利率是8.0到8.999,你會得到8分

+0

這是爲我工作的 - 謝謝! :) – TYPOI