Javascript 在动态添加的行中高亮显示选定字段会使其消失

Javascript 在动态添加的行中高亮显示选定字段会使其消失,javascript,html,css,dom,calendar,Javascript,Html,Css,Dom,Calendar,注意:请不要回答Jquery,我需要先了解一下Javascript 因此,我通过insertRow(-1)向表中添加了一些行。 当我尝试通过getElementById查找该表并更改字段的背景色时,它对第一个添加的行非常有效: “日期[4].style.backgroundColor='#FF0000'” 但不是在第二行或之后,它们只是消失了: “日期[7].style.backgroundColor='#FF0000' 我想强调一下今天(将用一个变量替换数字4/7)我不确定发生了什么,有人

注意:请不要回答Jquery,我需要先了解一下Javascript

因此,我通过insertRow(-1)向表中添加了一些行。 当我尝试通过getElementById查找该表并更改字段的背景色时,它对第一个添加的行非常有效: “日期[4].style.backgroundColor='#FF0000'”

但不是在第二行或之后,它们只是消失了:

“日期[7].style.backgroundColor='#FF0000'

我想强调一下今天(将用一个变量替换数字4/7)我不确定发生了什么,有人能解释一下吗

Javascript


var currentTime=新日期()
var month=currentTime.getMonth()+1
var day=currentTime.getDate()
var year=currentTime.getFullYear()
var hour=currentTime.getHours()
var min=currentTime.getMinutes()
//文件写入(月+“/”+日+“/”+年)
var test=currentTime.getDay();
var day=currentTime.getDate()+1;
var month=currentTime.getMonth();
var full_year=currentTime.getFullYear();
var总天数=(daysInMonth(月,全年));
var d=1;
功能日每月(月、年){
返回新日期(年、月、0)。getDate();
}
var温度=试验+1;
对于(i=0;i变化:

var table1 = document.getElementById("rowClassName");
致:

说明:

您仅使用“rowClassName”获取当前行的单元格。每行仅包含7个元素(Mon-Sun)。
[7]
表示您正在选择该行中不存在的第8个单元格(JavaScript数组基于0-第一个元素从0开始)

现在,您要做的是从表的开头开始计算表单元格的数量,包括第一行中的单元格

同样,如果这样做,您尝试引用的表格单元格可能还没有被循环创建。您应该在两个循环之外设置红色,或者为单元格设置一个类,并使用CSS设置背景颜色的样式

片段:

var currentTime=新日期()
var month=currentTime.getMonth()+1
var day=currentTime.getDate()
var year=currentTime.getFullYear()
var hour=currentTime.getHours()
var min=currentTime.getMinutes()
//文件写入(月+“/”+日+“/”+年)
var test=currentTime.getDay();
var day=currentTime.getDate()+1;
var month=currentTime.getMonth();
var full_year=currentTime.getFullYear();
var总天数=(daysInMonth(月,全年));
var d=1;
功能日每月(月、年){
返回新日期(年、月、0)。getDate();
}
var温度=试验+1;
对于(i=0;i<5;i++){
var table=document.getElementById(“日历”);
var行=table.insertRow(-1);
setAttribute(“id”,“rowClassName”+1,0);
对于(c=1;c<8;c++){
if(d}否则,如果((temp-test)如果您尝试在代码中添加14而不是7,则会出现相同的问题,它仍然只适用于前两行。啊,我现在明白了。发生这种情况是因为您尝试引用的表格单元格尚未由循环创建。您应该在两个循环之外设置红色。
<table id="calendar">
    <tr>
        <td>Mon</td>
        <td>Tue</td>
        <td>Wed</td>
        <td>Thu</td>
        <td>Fri</td>
        <td>Sat</td>
        <td>Sun</td>
    </tr>
</table>
var table1 = document.getElementById("rowClassName");
var table1 = document.getElementById("calendar");