格式化并连接表行单元格的值

时间:2014-08-18 17:08:02

标签: javascript jquery

我想连接表行单元格值,然后将连接的值格式化为格式说

Lamivudine 98% (RSD = 1.3% ; n= 6)

如果单击下一行中的下一个复选框,则新值应为

Lamivudine 98% (RSD = 1.3% ; n= 6) : Zidovudine 95% (RSD = 1.9% ; n= 9)

依旧等等......

这是表格行

<tr class="assay_row">
    <td>Lamivudine</td>
    <td>98%</td>
    <td>1.3%</td>
    <td>6</td>
     <td><input type="checkbox" name="case[]" class="case" /></td> 
</tr>
<tr class="assay_row">
    <td>Zidovudine</td>
    <td>95%</td>
    <td>1.9%</td>
    <td>6</td>
     <td><input type="checkbox" name="case[]" class="case" /></td> 
</tr>
<tr class="assay_row">
    <td>Zidovudine</td>
    <td>1.5922307662924</td>
    <td>1.3636240087592</td>
    <td>9</td>
     <td><input type="checkbox" name="case[]" class="case" /></td> 
</tr>

我的js到目前为止

$(document).ready(function() {
    $("input.case").click(myfunc);
});

function myfunc(ele) {

    var values = new Array();
    $.each($("input[name='case[]']:checked").closest("td").siblings("td"),
          function () {
               values.push($(this).text());
          });

    alert("val---" + values.join (", "));
 }

建议

1 个答案:

答案 0 :(得分:1)

您应该遍历所有tr元素,而不是td元素。在每一行中,您需要将td内容连接成您想要的格式。

function myfunc(ele) {

    var values = []
    $("input[name='case[]']:checked").closest("tr").each(function () {
        var tds = $(this).children();
        values.push(tds.eq(0).text() + " " + tds.eq(1).text() + " (RSD = " + tds.eq(2).text() + " ; n = " + tds.eq(3).text() + ")");
    });

    alert("val---" + values.join (" : "));
}

DEMO