【发布时间】:2014-02-16 05:45:33
【问题描述】:
我在这里不知所措。 我创建了一个快速脚本,它将向表中添加新行,并且还具有删除行的能力。
jsFiddle -->http://jsfiddle.net/wLpJr/10/
我想要实现的是: 显示每一行的每个值(在 id='thedata' 的 div 中)
我最初是在每个 id 的末尾添加一个数字,从“1”开始,每次用户添加一行时递增。
//This is random code
var rowcount = parseInt($('#rowcount').val());
var newcount = rowcount + (1*1);
var x = $('#radioinput' + newcount).val('a value');
$('#rowcount').val(newcount);
问题是假设您添加了 5 行。现在删除第 3 行。当您遍历数据表时,您将收到错误消息,因为第“3”行不存在。您有第 1、2、4、5、6 行。特别是 - id = 'radioinput3' 的输入将不存在。
然后我决定这样做:
$('#maintable > tbody > tr').each(function() {
radiovalue[i] = $("input[type='hidden']", this).map(function() {
var vid = 'radio' + i;
var myval = this.value;
var radioinput = document.createElement("input");
radioinput.type = "hidden";
radioinput.value = myval; // set the CSS class
radioinput.id = vid;
$('#maintable').append(radioinput);
}).get()
text1value[i] = $('td > input', this).map(function() {
var vid = 'text1pos' + i;
var myval = this.value;
var text1input = document.createElement('input');
text1input.type='hidden';
text1input.value = myval;
text1input.id = vid;
$('#maintable').append(text1input);
}).get()
text2value[i] = $('td > input', this).map(function() {
var vid = 'text2pos' + i;
var myval = this.value;
var text2input = document.createElement('input');
text2input.type='hidden';
text2input.value = myval;
text2input.id = vid;
$('#maintable').append(text2input);
}).get();
});
这里的问题是我得到了“未定义”的值。
【问题讨论】:
-
变量
i没有定义?您是否忘记添加要传递给$.each的函数的参数i, item
标签: javascript jquery for-loop foreach html-table