2016-06-07 110 views
0

我有一个表,它看起来像我提供以下与此数据的示例 表创建行从分割阵列数据

 T  som  da  pap 
    ------------------------------ 
    A | soma | label | nami | 
    ---------------------------- 
    B | a:b | acha | wen:nda | 
    ----------------------------- 
    C | d | k | nd:ke | 
    ----------------------------- 

使用在javascript/jquery的数据我想 创建像一个表这基于巴氏计数

 T  som  da  pap 
    ------------------------------ 
    A | soma | label | nami | 
    ---------------------------- 
    B | a | acha | wen  | 
    ----------------------------- 
    B | b | acha | nda  | 
    ----------------------------- 
    C | d | k | nd  | 
    ----------------------------- 
    C | d | k | ke  | 
    ----------------------------- 

建议,我都试过,但到目前为止,双倍数据我只能把在TD,而不是TR

+0

'som'和'pap'中总会有相同数量的项目吗?如果不是,如果他们有不同的数字会发生什么? – Barmar

回答

0

假设两个单元格中的项目数始终相同。

$("#tableID tr").each(function() { 
    var som = $(this).find("td:eq(1)").text(); 
    var som_array = som.split(':'); 
    if (som_array.length > 1) { 
     var pap_array = $(this).find("td:eq(3)").text().split(':'); 
     $.each(som_array, function(i, som_el) { 
      var pap_el = pap_array[i]; 
      var new_row = $(this).clone(); 
      new_row.eq(1).text(som_el); 
      new_row.eq(3).text(pap_el); 
      $(this).after(new_row); 
     } 
     $(this).remove(); 
    } 
}); 

这将遍历表中的所有行,并检查som列是否包含多个项目。如果确实如此,则会将其拆分,并拆分pap列。然后它遍历这些值,复制原始行,并用拆分字符串的元素替换这些列。最后它删除原来的行。