我有一个表,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
的值?
答案 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,例如:每个输入。