2013-08-01 22 views
1

我有一个动态的HTML表,我在PHP中通过查询创建。创建后,用户可以单击编辑按钮,某些单元格变为可编辑。当他们完成后,他们按下保存按钮,一个循环开始运行数据并将其存储在一个数组中。 几乎所有的一切正常,有一个小的问题获得工作#列的价值,它把这两个值在我的数组的一个索引。我做了一个小提示,以显示过程jsFiddle并说明了问题。正如你所看到的,它将所有数字都存储在最后一个索引中。我确实需要所有这些,但我希望将它们一次一个地存储起来,这样它们在阵列中都有各自的索引。jQuery从'tr td:first-child'产生不良效果

而且我会后的代码到这里,尽管我联系小提琴可能是更有益的

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

是的,你选择*所有*细胞在第一表列。 *当你说你只想要一个时,你想要哪一个? – Bergi

+0

@Bergi我对没有更加清楚的道歉表示歉意,实际上我确实希望他们全部都不要一下子,我希望他们每次都能在自己的个人索引中添加一个。贝诺的回答正是我所期待的。 –

+0

@Bergi我编辑了这个问题,使其更加清楚我期待的效果。这样未来的读者会明白 –

回答

1

这里的问题是,选择$('.contentTable tr td:first-child')选择这些元素中的每一个和所有获取文本当你看到时,导致16 17

我的建议是要改变几件事情:通过增加一个额外的选择 推标识加入数组:

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

然后删除代码您有获取ID - ID应该现在是在阵列的开始

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

+0

非常感谢!正是我需要的 –

相关问题