从没有id的表中检索td中的输入值

时间:2017-07-11 20:38:31

标签: javascript jquery

我需要从通用输入字段中检索日期。用户可以在表单中创建的日期(输入字段)的数量是我所不知道的,所以我用rowCount来计算它们。

我无法提取字段值(语法错误可能)。

N.B当我午餐时,我得到的代码:无法设置属性' 0'未定义的

HTML代码:

<div>
    <table id='dynamic_field_edit'>
         <tbody>
            <tr>
                <td>Date</td>
                <td><input type="text" placeholder="Enter date" /></td>
            </tr>
            <tr>
                <td>Date:</td>
                <td><input type="text" placeholder="Enter date" /></td>
            </tr>
         </tbody>   
    </table>
</div>

JS代码:

var arrayDate = [];

    var rowCount = document.getElementById('dynamic_field_edit').rows.length;
    console.log(rowCount);

   var allInputs = document.querySelectorAll('input');
    for (let i = 0; i < allInputs.length; i++) {    
       arrayDate.push(allInputs[i].value);
    }
    console.log(arrayDate);

修改

在完成所有建议的更改之后,它可以正常工作,但它会从文档中的输入中检索所有值。

3 个答案:

答案 0 :(得分:2)

您只需初始化阵列:

var arrayDate = [];

修改

似乎可以在此示例中使用,您可以与您的代码进行比较吗?

https://jsfiddle.net/emeLdecm/1/

(我添加了一个按钮来启动你的JS,只是为了演示)

答案 1 :(得分:1)

您是否在普通的javascript中使用jQuery语法?

通过以下方式选择您的表格:

table = document.getElementById('dynamic_field_edit');

并迭代:

for (var i = 0, row; row = table.rows[i]; i++) {
// do your stuff
};

答案 2 :(得分:0)

我找到了一种方法来实现我想要做的事情。

@proggrock解决方案也适用于检索文档中的所有输入值。

var arrayDate = [];

    var rowCount = document.getElementById('dynamic_field_edit').rows.length;
    console.log(rowCount);

    $("#dynamic_field_edit").find('input:text')
        .each(function() {
            arrayDate.push($(this).val());
        });
    console.log(arrayDate);