在表中获取具有相同名称的每个输入的值

时间:2015-09-04 12:55:12

标签: javascript jquery html node.js html-table

我有一个表,tbody是从node.js的数据响应中动态填充的。这就是为什么当我创建输入时,名称和id在所有行中保持等于。

表:

<table id="tblNotas">
    <thead>
       <tr>
          <th>Column</th>
          <th>Column</th>
          <th>Input</th>
       </tr>
    </thead>
    <tbody>
       <% alunos.forEach(function(aluno) { %>
       <tr>
          <td><label>Some text</label></td>
          <td><label>Some text</label></td>                             
          <td>
            <input id="txtNota" name="txtNota" type="number" min="0.0" max="10" step="0.01">
          </td>
       </tr>
       <% }); %>                        
    </tbody>
</table>                       

在JavaScript或JQuery中,我如何获得每行输入txtNota的值?

3 个答案:

答案 0 :(得分:2)

试试这个:

$('input[name="txtNota"]').each(function(key,val){
      alert(val.value)
})

请阅读有关选择器的内容。这可以扩展到类或任何html属性。 参考:https://api.jquery.com/attribute-equals-selector/

答案 1 :(得分:1)

假设您有类而不是ID(对于您的输入),您可以这样做:

function getValues() {
    var values = new Array();
    $('#tblNotas tbody .txtNota').each(function (i,e) {
        values.push({
            $(e).val()
        })
    });
    return values;
}

答案 2 :(得分:1)

我不确定你在这里使用哪个模板引擎,但是你应该可以做这样的事情

<% alunos.forEach(function(aluno) { %>
     <tr>
        <td><label>Some texto</label></td>
        <td><label>Some texto</label></td>                             
        <td>
            <input id="<%= aluno.id %>" name="txtNota" type="number" min="0.0" max="10" step="0.01">
        </td>
     </tr>
<% }); %>

基本上,我们的想法是从你正在迭代的对象中获取id并将其传递给DOM元素的ID,例如:每个输入。