Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修复未捕获的Typeerror:无法读取属性';innerHTML';_Javascript_Html_Dom - Fatal编程技术网

Javascript 如何修复未捕获的Typeerror:无法读取属性';innerHTML';

Javascript 如何修复未捕获的Typeerror:无法读取属性';innerHTML';,javascript,html,dom,Javascript,Html,Dom,我想在两个日期之间搜索数据,但一次又一次地出现相同的错误我尝试了多种搜索和技术,但我被卡住了我只是不断地遇到错误这个错误,不知道怎么解决这个问题 在表格上方有一个搜索按钮,该按钮从用户处获取两个日期,并从这些日期中搜索数据,然后再次显示其按日期过滤的数据 <button type="button" class="btn btn-info " style="font-size:17px; margin-left:548px; margin-top:-63px;" onclick="myFu

我想在两个日期之间搜索数据,但一次又一次地出现相同的错误我尝试了多种搜索和技术,但我被卡住了我只是不断地遇到错误这个错误,不知道怎么解决这个问题 在表格上方有一个搜索按钮,该按钮从用户处获取两个日期,并从这些日期中搜索数据,然后再次显示其按日期过滤的数据

<button type="button" class="btn btn-info  " style="font-size:17px; margin-left:548px; margin-top:-63px;" onclick="myFunction()">Search</button>
     <table id="worksheet-list" class="table table-responsive">


                <thead >

                    <tr class="table table-primary">

                        <th>
                            @*@Html.Label("SNo")*@
                        </th>
                        <th>
                            @Html.Label("Project")
                        </th>


                        <th>
                            @*@Html.DisplayNameFor(model => model.Hours)*@
                            Hours
                        </th>
                        <th>
                            @*@Html.DisplayNameFor(model => model.Date)*@
                            Date
                        </th>

                        <th>Action</th>
                    </tr>
                </thead>

                @*@foreach (var item in Model)*@
                @for (int count = 0; count < 10; count++)

                {
                    //count++;
                    <tr>
                        <td>
                            @count
                        </td>

                        <td>
                            @*@Html.DisplayFor(modelItem => item.Project.Name)*@
                            ASP.NET
                        </td>


                        <td>
                            @*@Html.DisplayFor(modelItem => item.Hours)*@
                            5 Hours
                        </td>
                        <td>
                            @*@Html.DisplayFor(modelItem => item.Date)*@
                            6/8/2018
                        </td>

                        <td>

                            <a href="#" class="btn btn-primary">Edit</a>
                            @*<a href="#" class="btn btn-primary">Detail</a>*@
                            <a href="#" class="btn btn-danger">Delete</a>
                        </td>



                    </tr>
                }

            </table> 


<script>
 function myFunction() {
        var from = document.getElementById("date-from");
        var to = document.getElementById("date-to");
        var table = document.getElementById("worksheet-list");
        var tr = table.getElementsByTagName("tr");
        var td;
        for (var i = 0; i < tr.length; i++) {

            td = tr[i].getElementsByTagName("td")[3].innerHTML;

            var d1 = from.split("/");
            var d2 = to.split("/");
            var c = td.split("/");

            var from = new Date(d1[0], parseInt(d1[1]) - 1, d1[2]);
            var to = new Date(d2[0], parseInt(d2[1]) - 1, d2[2]);
            var check = new Date(c[0], parseInt(c[1]) - 1, c[2]);
            if (check >= from && check <= to) {

                tr[i].style.display = "";
            }
            else {

                tr[i].style.display = "none";
            }
        }
    }
 </script>
搜索
@*@Html.Label(“SNo”)*@
@Html.Label(“项目”)
@*@DisplayNameFor(model=>model.Hours)*@
小时
@*@DisplayNameFor(model=>model.Date)*@
日期
行动
@*@foreach(模型中的var项目)*@
@对于(int count=0;count<10;count++)
{
//计数++;
@计数
@*@DisplayFor(modelItem=>item.Project.Name)*@
ASP.NET
@*@DisplayFor(modelItem=>item.Hours)*@
5小时
@*@DisplayFor(modelItem=>item.Date)*@
6/8/2018
@**@
}
函数myFunction(){
var from=document.getElementById(“日期自”);
var to=document.getElementById(“日期到”);
var table=document.getElementById(“工作表列表”);
var tr=table.getElementsByTagName(“tr”);
var-td;
对于(变量i=0;i如果(check>=from&&check使用
getElementsByTagName(“tr”)
获取表行,则还将获取
thead
元素中的行,该元素没有子
td
元素

解决问题的最简单方法是忽略第一个表行,从1开始循环

for (var i = 1; i < tr.length; i++) {
for(变量i=1;i
如果你想的话,你可以在你的代码中加入一个意义检查

for (var i = 0; i < tr.length; i++) {

    td = tr[i].getElementsByTagName("td");

    // if this row has no 3rd td then continue the loop
    if (td.length < 4) continue;

    td = td[3];
for(变量i=0;i
这意味着这
tr[i].getElementsByTagName(“td”)[3]
是未定义的。如果不查看表
#工作表列表,我们将无能为力
我现在已经给出了完整的代码