如何使用 HTML、CSS 和 JavaScript 根据值更改行的背景颜色?
How can I change the background color of a row based on the value using HTML, CSS and JavaScript?
我是 HTML、CSS 和 JavaScript 的新手。
我正在尝试 table 根据最后两列(或 table 上的“td”)的值更改行的背景颜色。
1
如果“Nota Final”列中的值 >= 7 或“Frequência” >= 75,则此行的背景颜色变为绿色,否则,它变为红色。
我想要这个输出:
2
这是我的代码。这周开始研究,所以,代码乱七八糟...
var list1 = [];
var list2 = [];
var list3 = [];
var list4 = [];
var list5 = [];
var list6 = [];
var n = 1;
var x = 0;
function AddRow(){
var AddRown = document.getElementById('show');
var NewRow = AddRown.insertRow(n);
list1[x] = n;
list2[x] = document.getElementById("fname").value + " " + document.getElementById("lname").value;
list3[x] = document.getElementById("grade1").value;
list4[x] = document.getElementById("grade2").value;
//Nota final
var n1 = document.getElementById("grade1").value;
var n2 = document.getElementById("grade2").value;
var mean = (Number(n1)+Number(n2))/2;
list5[x] = mean;
list6[x] = document.getElementById("frequency").value + "%";
var cel1 = NewRow.insertCell(0);
var cel2 = NewRow.insertCell(1);
var cel3 = NewRow.insertCell(2);
var cel4 = NewRow.insertCell(3);
var cel5 = NewRow.insertCell(4);
var cel6 = NewRow.insertCell(5);
cel1.innerHTML = list1[x];
cel2.innerHTML = list2[x];
cel3.innerHTML = list3[x];
cel4.innerHTML = list4[x];
cel5.innerHTML = list5[x];
cel6.innerHTML = list6[x];
n++;
x++;
}
#show {
background-color: black;
}
#show th {
padding: 13px;
}
#show td {
padding: 13px;
background-color: #ffffff;
text-align: center;
}
<table id="show">
<thead>
<tr id="title">
<th>ID</th>
<th>Nome</th>
<th>1° Semestre</th>
<th>2° Semestre</th>
<th>Nota Final</th>
<th>Frequência</th>
</tr>
</thead>
</table>
"Nota Final" >= 7 or "Frequência" >= 75
根据样本 table 这应该是 "Nota Final" >= 7 AND "Frequência" >= 75
How can I change the background color of a row based on the value using HTML, CSS and JavaScript?
您可以为此使用 Javascript 中的 if else
。查看 this 教程。
我要做的是将默认颜色设置为 red,如果满足 2 个条件,将其更改为 green
你可以做到
if (document.getElementById("frequency").value>=75 && document.getElementById("notaFinal").value>=7){
//change background to green
}
尝试这样的事情。关键是编写一个函数来添加一行,您已经完成了。在该函数中,您可以检查感兴趣的列的值。然后,如果它与目标匹配,则在将其添加到 table 之前,将特定的 class(在本例中为 'green')添加到您创建的行。否则,添加一个不同的 class(在本例中为 'red')。祝你好运!
function AddRow(listOfParams){
var table = document.getElementById("show");
var row = document.createElement("tr");
for (i=0;i<6;i++){
var td = document.createElement("td");
td.innerHTML = listOfParams[i];
row.appendChild(td);
}
if (listOfParams[4] >= 7 || listOfParams[5] >= 75){
row.classList.add("green");
}
else{
row.classList.add("red");
}
table.append(row);
}
AddRow([1,"oliver",6.5,7.8,7.2,90]); // add one row
// add multiple rows
const ids = [2,3];
const nomes = ['name1','name2'];
const semester1 = [4.5,3.2];
const semester2 = [3.5,4.4];
const final = [7,6];
const frequencias = [70,70];
for (row=0;row<ids.length;row++){
AddRow([ids[row],nomes[row],semester1[row],semester2[row],final[row],frequencias[row]]);
}
#show {
background-color: black;
}
#show th {
padding: 13px;
color: white;
}
#show td {
padding: 13px;
text-align: center;
}
.green{
background-color:green !important;
}
.red{
background-color:red !important;
}
<table id="show">
<thead>
<tr id="title">
<th>ID</th>
<th>Nome</th>
<th>1° Semestre</th>
<th>2° Semestre</th>
<th>Nota Final</th>
<th>Frequência</th>
</tr>
</thead>
</table>
我是 HTML、CSS 和 JavaScript 的新手。
我正在尝试 table 根据最后两列(或 table 上的“td”)的值更改行的背景颜色。
1
如果“Nota Final”列中的值 >= 7 或“Frequência” >= 75,则此行的背景颜色变为绿色,否则,它变为红色。
我想要这个输出:
2
这是我的代码。这周开始研究,所以,代码乱七八糟...
var list1 = [];
var list2 = [];
var list3 = [];
var list4 = [];
var list5 = [];
var list6 = [];
var n = 1;
var x = 0;
function AddRow(){
var AddRown = document.getElementById('show');
var NewRow = AddRown.insertRow(n);
list1[x] = n;
list2[x] = document.getElementById("fname").value + " " + document.getElementById("lname").value;
list3[x] = document.getElementById("grade1").value;
list4[x] = document.getElementById("grade2").value;
//Nota final
var n1 = document.getElementById("grade1").value;
var n2 = document.getElementById("grade2").value;
var mean = (Number(n1)+Number(n2))/2;
list5[x] = mean;
list6[x] = document.getElementById("frequency").value + "%";
var cel1 = NewRow.insertCell(0);
var cel2 = NewRow.insertCell(1);
var cel3 = NewRow.insertCell(2);
var cel4 = NewRow.insertCell(3);
var cel5 = NewRow.insertCell(4);
var cel6 = NewRow.insertCell(5);
cel1.innerHTML = list1[x];
cel2.innerHTML = list2[x];
cel3.innerHTML = list3[x];
cel4.innerHTML = list4[x];
cel5.innerHTML = list5[x];
cel6.innerHTML = list6[x];
n++;
x++;
}
#show {
background-color: black;
}
#show th {
padding: 13px;
}
#show td {
padding: 13px;
background-color: #ffffff;
text-align: center;
}
<table id="show">
<thead>
<tr id="title">
<th>ID</th>
<th>Nome</th>
<th>1° Semestre</th>
<th>2° Semestre</th>
<th>Nota Final</th>
<th>Frequência</th>
</tr>
</thead>
</table>
"Nota Final" >= 7 or "Frequência" >= 75
根据样本 table 这应该是 "Nota Final" >= 7 AND "Frequência" >= 75
How can I change the background color of a row based on the value using HTML, CSS and JavaScript?
您可以为此使用 Javascript 中的 if else
。查看 this 教程。
我要做的是将默认颜色设置为 red,如果满足 2 个条件,将其更改为 green
你可以做到
if (document.getElementById("frequency").value>=75 && document.getElementById("notaFinal").value>=7){
//change background to green
}
尝试这样的事情。关键是编写一个函数来添加一行,您已经完成了。在该函数中,您可以检查感兴趣的列的值。然后,如果它与目标匹配,则在将其添加到 table 之前,将特定的 class(在本例中为 'green')添加到您创建的行。否则,添加一个不同的 class(在本例中为 'red')。祝你好运!
function AddRow(listOfParams){
var table = document.getElementById("show");
var row = document.createElement("tr");
for (i=0;i<6;i++){
var td = document.createElement("td");
td.innerHTML = listOfParams[i];
row.appendChild(td);
}
if (listOfParams[4] >= 7 || listOfParams[5] >= 75){
row.classList.add("green");
}
else{
row.classList.add("red");
}
table.append(row);
}
AddRow([1,"oliver",6.5,7.8,7.2,90]); // add one row
// add multiple rows
const ids = [2,3];
const nomes = ['name1','name2'];
const semester1 = [4.5,3.2];
const semester2 = [3.5,4.4];
const final = [7,6];
const frequencias = [70,70];
for (row=0;row<ids.length;row++){
AddRow([ids[row],nomes[row],semester1[row],semester2[row],final[row],frequencias[row]]);
}
#show {
background-color: black;
}
#show th {
padding: 13px;
color: white;
}
#show td {
padding: 13px;
text-align: center;
}
.green{
background-color:green !important;
}
.red{
background-color:red !important;
}
<table id="show">
<thead>
<tr id="title">
<th>ID</th>
<th>Nome</th>
<th>1° Semestre</th>
<th>2° Semestre</th>
<th>Nota Final</th>
<th>Frequência</th>
</tr>
</thead>
</table>