我有要获取每个表行中第一个td值的函数。循环时,我想将每个值与用户选择的日期值进行比较。比较日期之后,我需要获取该值应在表格中放置的位置。这是我的代码示例:

HTML表格:

<table id="tblBody_DBA">
    <tbody>
        <tr id="Att_5258717">
            <td>03/28/2017</td>
            <td></td>
        </tr>
        <tr id="Att_5258339">
            <td>03/25/2017</td>
            <td>03/26/2017</td>
        </tr>
        <tr id="Att_5258337">
            <td>03/22/2017</td>
            <td>03/24/2017</td>
        </tr>
        <tr id="Att_5258332">
            <td>03/16/2017</td>
            <td>03/21/2017</td>
        </tr>
        <tr id="Att_5258331">
            <td>03/10/2017</td>
            <td>03/15/2017</td>
        </tr>
    </tbody>
</table>

 function sortRow(distType, rowId){
        var newVal = document.getElementById("newDate").value; //this is new value that I have to compare against existing values and return position in the table.
        var tblID = document.getElementById("parentTable").value;
        var table = window.parent.document.getElementById("tblBody_"+tblID);
        var arrayDates = [];

        for(var i=0; table.rows.length; i++){
            //Here I'm getting JavaScript error: TypeError: table.rows[i] is undefined
            alert(table.rows[i].cells[0].innerHTML);
        }

    }


我在警报框中获取每个表单元的值,但最后在调试器中显示错误。如果有人可以帮忙,请告诉我。我无法使用JQuery,在我的情况下,纯JavaScript是完成此操作的唯一方法。

最佳答案

您可以从每个td中专门抓取第一个tr

var table = document.getElementById('tblBody_DBA');
var targetTDs = table.querySelectorAll('tr > td:first-child');


for (var i = 0; i < targetTDs.length; i++) {
    var td = targetTDs[i];
    console.log(td.innerHTML);
}

07-26 02:32