我用 JQuery
动态创建了表,我想获得 input
元素的值:
$el.append('<tr data-id='+ data[i].id + ' data-token='+data[i].token + '><td>'+data[i].order+'</td>\n\
<td><input name="qty" id="qty" type="number" value="'+data[i].qty+'" min="1"></td>\n\
......
使用此代码,我可以生成表格(这只是代码片段)。我知道如何访问 tr 标签的值:
$('body').on('click', 'a.link', function(e) {
e.preventDefault();
var tr = $(this).closest('tr'),
id = tr.data('id'), // we have the id
token = tr.data('token'), // we have the token
qty = tr.data('qty'); <------------- this not working
})
如何获得 qty
的价值?
原文由 Klapsius 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题: 您的 --- 中没有 ---
tr
data-qty
属性。您的表中也根本没有data-qty
。解决方案: 在创建表期间,您将
data[i].qty
分配给input
元素作为值。因此,您需要阅读input
值。如下图。注意: Satpal 提供了一个有效的观点。如果你在循环中构建
tr
那么你将相同的id
分配给所有input
行中不推荐的元素.最好删除id
属性并仅使用name
属性来选择元素。喜欢tr.find('input[name="qty"]').val();
或tr.find('td:eq(1) input').val()
但是,如果是这种情况,那么 Satpal 给出了正确的答案。