1

我有一个从查询HTML中创建的动态表。PHP创建后,用户可以单击编辑按钮,某些单元格变为可编辑的。完成后,他们按下保存按钮,然后开始循环遍历数据并将其存储在数组中。几乎一切正常,获取 job# 列的值存在一个小问题,它将两个值都放在我数组的一个索引中。我做了一个小提琴来展示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 = [];
});
4

1 回答 1

1

这里的问题是选择器$('.contentTable tr td:first-child')选择了这些元素中的每一个并从所有元素中获取文本,结果16 17如​​您所见。

我的建议是改变几件事:通过添加一个额外的选择器将 id 推送到数组中:

$('.editable_content_td, .content_td a').each(function () {
    saveEdits.push($(this).text());
});

然后删除获取 id 的代码 - id 现在应该位于数组的开头

http://jsfiddle.net/NuLPC/8/

于 2013-08-01T01:21:29.047 回答