【发布时间】:2022-01-25 10:58:38
【问题描述】:
我从 Firebase 获取所有电影数据,还获得了电影的分数。如果电影的分数高于 70,那么我将 id 的颜色更改为“deepskyblue”,如果它是 50 或更高将是“橙色”,最后如果它低于 50 将是“深红色” (红色的)。当我这样做时,它只会改变我第一部电影的 id 的颜色。但我想改变所有这些。我该怎么做?
我的网站
Console.log(i)
var movieNo = 0;
let html = '';
var body = document.getElementById('editor');
var body2 = document.getElementById('week');
function AddItemsToTable(name, score, img, id) {
var movies = `<div class="content"><img src="${img}" ><p><a href="Admin.html?movieId=${id}">${name}</a></p> <p> <i class="fa fa-star" id="star"></i> <a class="scoretxt">${score}</a> </p> </div>`;
html = movies;
body.innerHTML += html;
body2.innerHTML += html;
}
function AddAllItemsToTable(TheMovies) {
movieNo = 0;
var counter = 0;
TheMovies.forEach(element => {
if (counter === 6) {
return;
}
AddItemsToTable(element.movieName, element.movieScore, element.movieImage, element.movieId);
var i = document.getElementsByClassName("fa fa-star")[element.movieId];
console.log(i);
if (element.movieScore >= 70) {
i.style.color = "deepskyblue"; //good movie
} else if (element.movieScore >= 50) {
i.style.color = "orange"; //not bad
} else {
i.style.color = "crimson"; //bad movie
}
counter++;
});
}
function getAllDataOnce() {
const dbRef = ref(db);
get(child(dbRef, "Movies"))
.then((snapshot) => {
var movies = [];
snapshot.forEach(childSnapshot => {
movies.push(childSnapshot.val())
});
AddAllItemsToTable(movies);
});
}
window.onload = getAllDataOnce;
<div class="body" id="body">
<div class="baslik">Opening This Week</div>
<div class="baslik2"><a href="series.html">See all</a></div>
<div id="week">
</div>
<div class="baslik">Editor's Picks</div>
<div class="baslik2"><a href="movies.html">See all</a></div>
<div id="editor">
</div>
</div>
【问题讨论】:
-
您的 sn-p 给出了控制台错误。请修复以制作minimal reproducible example
标签: javascript html firebase