无法使用jquery删除表中的tr

时间:2015-05-09 16:13:40

标签: javascript jquery html datatable

所以我在使用jquery删除表中的特定tr时遇到问题。

所以这就是场景:

我有一个表格,其中的行可点击。当我点击其中一个时,我将能够更新与该行相关联的对象数据。但是,在更新对象之后,我想反映特定tr的td的变化。

我的解决方案是,删除旧的tr并替换为新的tr。但是,它没有删除旧的tr而只是插入新的tr。所以这是我的代码:

   function update_table_after_updating(selected_violator){
            violators_table.find('tr').each(function (i, el) {
                var tr = ($(this));
                var td_text = $(this).find('td:first').text();      
                if(td_text == selected_violator.violator_id){
                    console.log(tr);
                   //I cant remove this row
                    tr.remove();
                    return false;
                }
            });
            update_table(selected_violator);
        }

update_table()函数

function update_table(violator){
        var img_str1 = '<img class=\"obj-pic\" src=\"' + Main.Vars.base_path + violator.front_temp_file_path + '\">';
        var img_str2 = '<img style=\"margin-left: 10px;\" class=\"obj-pic\" src=\"' + Main.Vars.base_path + violator.rear_temp_file_path + '\">';
        var img_str3 = '<img style=\"margin-left: 10px;\" class=\"obj-pic\" src=\"' + Main.Vars.base_path + violator.right_temp_file_path + '\">';
        var img_str4 = '<img style=\"margin-left: 10px;\" class=\"obj-pic\" src=\"' + Main.Vars.base_path + violator.left_temp_file_path + '\">';

        violators_table.dataTable().fnAddData([
            violator.violator_id,
            violator.get_full_name(),
            'Under Construction',
            img_str1 + img_str2 + img_str3 + img_str4,
        ]);
        $('#violators_tbl tbody tr').on('click', function(){
            var td = $(this).find('td:first').text();
            //returns violator object
            selected_violator = get_violator(td);   
            show_modal('view_violator');
        });
    }

非常感谢!非常感谢您的回复。

PS:我正在使用jquery DataTables。

1 个答案:

答案 0 :(得分:1)

嗯这有点令人失望,我搜索了Jquery Docs然后我找到了这个:

  

.empty() - &gt;此方法不仅删除了孩子(和其他后代)   元素,以及匹配元素集中的任何文本。这个   是因为,根据DOM规范,任何文本字符串   元素内的元素被认为是该元素的子节点。考虑   以下HTML:

与remove()不同。 empty()还会删除所选元素的子节点。

而且,瞧! tr已被删除。