jQuery:合并表的列

胺莫斯特法伊

我想合并两个彼此相邻的表的最后一列的单元格具有相同的文本:

在此处输入图片说明

我有这段代码,但它检查彼此相邻的行单元格:

<script language="javascript" type="text/javascript">
    $(document).ready(function () {

        $('#sample_1 tbody tr:nth-child(4) td:nth-child(4)').each(function(){
            alert( $(this).text());

            var colSpan=1;
            while( $(this).text() == $(this).next().text() ){

                $(this).next().remove();
                colSpan++;
            }
            $(this).attr('colSpan',colSpan);
        });
    });
</script>

这是表HTML的代码源:

<table class="table table-striped table-bordered dataTable TF" id="sample_1" aria-describedby="sample_1_info">
    <tbody role="alert" aria-live="polite" aria-relevant="all">
        <tr class="fltrow">
            <td colspan="4">
                <input id="flt0_sample_1" type="text" ct="0" class="single_flt">
            </td>
        </tr>
        <tr class="gradeX odd">
        </tr>
        <tr role="row">
            <th class="sorting" role="columnheader" tabindex="0" aria-controls="sample_1" rowspan="1" colspan="1" aria-label="Username: activate to sort column ascending" style="width: 231px;">Nom</th>
            <th class="sorting" role="columnheader" tabindex="0" aria-controls="sample_1" rowspan="1" colspan="1" aria-label="Username: activate to sort column ascending" style="width: 231px;">Prénom</th>
            <th class="sorting" role="columnheader" tabindex="0" aria-controls="sample_1" rowspan="1" colspan="1" aria-label="Username: activate to sort column ascending" style="width: 231px;">Numéro Teléphone</th>
            <th class="sorting" role="columnheader" tabindex="0" aria-controls="sample_1" rowspan="1" colspan="1" aria-label="Username: activate to sort column ascending" style="width: 231px;">heure de rdv</th>
        </tr>
        <tr role="row">
            <td class="hidden-phone ">
                MOSTEFAOui                                                    
            </td>
            <td class="hidden-phone ">
                MAiNE                                                    
            </td>
            <td class="hidden-phone ">
                0555122844                                                    
            </td>
             <td class="hidden-phone " colspan="1">
                09:00                                                    
            </td>
        </tr>
        <tr role="row">
            <td class="hidden-phone ">
                ADJOUT                                                    
            </td>
            <td class="hidden-phone ">
                ABDELKADER                                                   
            </td>

            <td class="hidden-phone ">
                0775522355                                                   
            </td>
            <td class="hidden-phone ">
                10:00                                                   
            </td>
        </tr>
        <tr role="row">
            <td class="hidden-phone ">
                SANAD                                                   
            </td>
            <td class="hidden-phone ">
                MILOUD                                                    
            </td>

            <td class="hidden-phone ">
                0661225412                                                    
            </td>
             <td class="hidden-phone ">
                10:00                                                    
            </td>
        </tr>
        <tr role="row">
            <td class="hidden-phone ">
                ACHAOUR                                                   
            </td>
            <td class="hidden-phone ">
                MOHAMED                                                    
            </td>

            <td class="hidden-phone ">
                0555122265                                                    
            </td>
             <td class="hidden-phone ">
                10:00                                                    
            </td>
        </tr>
        <tr role="row">
            <td class="hidden-phone ">
                TARFAUI                                                    
            </td>
            <td class="hidden-phone ">
                MORAD                                                    
            </td>

            <td class="hidden-phone ">
                0788745211                                                   
            </td>
             <td class="hidden-phone ">
                10:00                                                   
            </td>
        </tr>
        <tr role="row">
            <td class="hidden-phone ">
                TANEM                                                    
            </td>
            <td class="hidden-phone ">
                LAKHDAR                                                    
            </td>

            <td class="hidden-phone ">
                0666115487                                                    
            </td>
             <td class="hidden-phone ">
                11:00                                                    
            </td>
        </tr>
    </tbody>
</table>
比尔·杨(Bill Young)

不是最优雅的解决方案,但它可以工作。

我在您的第4列中添加了一个名为“ heure”的类

<td class="heure">11:00</td>

以及对JS的以下更改

<script language="javascript" type="text/javascript">
    $(document).ready(function () {

        var topMatchTd;
        var previousValue = "";
        var rowSpan = 1;

        $('.heure').each(function(){

            if($(this).text() == previousValue)
            {
              rowSpan++;
              $(topMatchTd).attr('rowspan',rowSpan);
              $(this).remove();
            }
            else
            {
              topMatchTd = $(this);
              rowSpan = 1;
            }

            previousValue = $(this).text();
        });
    });
</script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章