2012-09-22 38 views
0

我有一张表,其中有可编辑的数据。每个'可编辑'部分都包含两个表格行。JQuery根据一个数据属性替换两个表行

<table> 
    <tr data-doc_id2='doc_id2'> 
    </tr> 
    <tr></tr> 
    <tr data-doc_id2='doc_id2'> 
    </tr> 
    <tr></tr> 
    <tr data-doc_id2='doc_id2'> 
    </tr> 
    <tr></tr> 
    <tr data-doc_id2='doc_id2'> 
    </tr> 
    <tr></tr> 
</table> 

(请注意,我没有把<td></td>中....)

我的jQuery至今如下。这将用相关ID替换第一行。我在选择第二行时遇到问题... next()似乎在寻找具有该ID的下一行。

var new_row="<tr data-doc_id2='"+doc_id+"'> 
    <td>"+doc_name+"</td> 
    <td>"+first_ins4+"</td> 
    <td>"+job_price4+"</td> 
    <td>"+tender4+"</td> 
    <td><a class='edit_docs' href='javascript:void(0);'>Edit</a> | <a class='del_doc' href='javascript:void(0);'>Delete</a></td> 
</tr>"; 
    var new_row2="<tr><td colspan='4'>"+second_ins4+"</td><td></td></tr>"; 

    var row_to_change=$("tr:[data-doc_id2='"+doc_id+"']"); 
    $(row_to_change).replaceWith(new_row); 
+0

你已经交换了'-'和'_',添加了一个'2',并在选择器前加了一个':',但是不应该选择第一行。 – pimvdb

+0

对不起 - html是更多的示例html,因为原始表是动态生成的...我会看这 – Sideshow

回答

1
var row_to_change=$("tr:[data-doc_id2='"+doc_id+"']"); 
$(row_to_change).closest('tr').next('tr').remove(); 
$(row_to_change).replaceWith(new_row); 

代替具有NEW_ROW和new_row2我在NEW_ROW变量置换成两个新行的行中的一个粘在一起的HTML然后通过使用标准选择器除去的下一行。笨拙但有效。

+0

如果'row_to_change'是'',那么你不需要'.closest(“tr” )'。 – pimvdb