前端面试题:HTML表单根据不同状态显示不同的颜色
摘要:干货源码,拿走不谢,之前有小伙伴在找前端的工作,遇到面试官出过这样的一道面试题:
面试题:要求使用原生js或者jQuery实现一个列表数据展示页面,展示字段包括序号、项目名称、建设单位、建设日期、项目状态,并且根据不同的项目状态使整行显示不同颜色。
很明显这公司很重视程序员的代码基础,废话不多说,上干货!
- HTML 表单的基本结构。
// <!-- html 表单的基本骨架 -->
<table id="data">
<tr>
<th>序号</th>
<th>项目名称</th>
<th>建设单位</th>
<th>建设日期</th>
<th>项目状态</th>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>
建设中
</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>
已完成
</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>未开始</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>超期</td>
</tr>
</table>
- css 样式,处理表单的原始结构样式和预设状态颜色样式。
table{
width:600px; text-align:center; border-collapse:collapse;}
td,th{
border:1px solid black; height: 25px;}
/* 项目状态 */
/* 未开始 */
.init{
background: #eee;
}
/* 在建设 */
.warning{
background: rgb(0, 225, 255);
}
/* 已完成 */
.success{
background: rgb(0, 255, 42);
}
/* 超期 */
.danger{
background: rgb(255, 0, 0);
}
- javascript 代码,根据项目状态值,修改对应整行的颜色。(这里使用了原生js实现)
//1. 查找触发事件的元素
//先找table
var table=document.getElementById("data");
// 找到每一行
var tr = document.querySelectorAll("#data>tbody>tr");
console.log(tr)
//2. 为元素绑定事件处理函数
tr.forEach((item, i)=>{
var c = ;
switch(item.children[4].innerText){
case 未开始 : c = "init";break;
case 建设中 : c = "warning";break;
case 已完成 : c = "success";break;
case 超期 : c = "danger";break;
default : c = ;
}
// 将对应的类放到对应的状态栏中
//3. 查找要修改得元素
//4. 修改元素
document.getElementsByTagName("tr")[i].classList=c;
});
上一篇:
Java基础知识总结(2021版)
下一篇:
数据库锁常见的面试题(面试总结)
