我有一个动态HTML
表,我在PHP
中从查询中创建。创建后,用户可以单击编辑按钮,某些单元格可以编辑。当它们完成后,按下保存按钮,循环开始运行数据并将其存储在数组中。 几乎一切正常,获取作业#列的值存在一个小问题,它将两个值都放在我的数组的一个索引中。我做了一个小提示来展示过程jsFiddle并说明问题。因此,您可以看到我将所有数字存储在最后一个索引中。我确实需要所有这些,但我希望它们一次存储一个,这样它们每个都有自己的数组索引。
此外,我会在这里发布代码,即使我链接的小提琴可能更有用
var saveEdits = [];
$('#table_edit_projects').click(function () {
$('#create_project').hide();
$('#table_edit_projects').hide();
$('#save_project_te').show();
$('#cancel_save_project_te').show();
$('.editable_content_td').attr('contenteditable', 'true');
$('.editable_content_td').addClass('blue_td');
});
$('#save_project_te').click(function () {
$('#save_project_te').hide();
$('#cancel_save_project_te').hide();
$('#create_project').show();
$('#table_edit_projects').show();
$('.editable_content_td').attr('contenteditable', 'false');
$('.editable_content_td').removeClass('blue_td');
$('.editable_content_td').each(function () {
saveEdits.push($(this).text());
});
var id = $('.contentTable tr td:first-child');
saveEdits.push($(id).text());
$.each(saveEdits, function (index, value) {
alert(index + ': ' + value);
});
/*This will be used to send the data and update the table in the database
$.ajax({
url:'core/functions/update_projects.php',
type: 'post',
data: {'saveEdits': saveEdits},
done: function(data) {
// this is for testing
}
}).fail (function() {
alert('error');
}).always(function(data) {
alert(data);
});
*/
saveEdits = [];
});
答案 0 :(得分:1)
问题在于,选择器$('.contentTable tr td:first-child')
会选择这些元素中的每一个,并从所有元素中获取文本,从而产生16 17
。
我的建议是改变一些事情: 通过添加一个额外的选择器将id推入数组:
$('.editable_content_td, .content_td a').each(function () {
saveEdits.push($(this).text());
});
然后删除你获得id的代码 - id现在应该在数组的开头