javascript - 使用 jquery 编辑表中特定行的 colspan 属性

标签 javascript jquery html css

我的页面中有一个 HTML 表格。像这样

<table class="table table-bordered table-responsive">
    <thead>
    <tr class="tablewhite">
        <th>&nbsp;No</th>
        <th>Options</th>
        <th>Dash</th>
        <th>mm</th>
        <th>Inch</th>
        <th>mm</th>
        <th>mm</th>
    </tr>
    </thead>
    <tbody>
    <tr class="tablecontentwhite">
        <td>19904408</td>
        <td>S/G</td>
        <td>-4</td>
        <td>4.4</td>
        <td>5/16"</td>
        <td>7.9</td>
        <td>20.0</td>
    </tr>
    <tr class="tablecontentblue">
        <td>&nbsp;Material: Acidproof Stainless Steel with bronze inserted thread.</td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>
    <tr class="tablecontentwhite">
        <td>&nbsp;-  K=Clevis Pin Treaded w/Nut, G=Clevis Pin w/G-ring</td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>

    </tbody>
</table>

表格的最后三行可能在结构上有所不同。就像我在上面显示的那样,最后两行仅在第一列中有文本。如果只有该列的第一列有文字,我想给它最大宽度。在这种情况下,将 colspan="7" 添加到包含文本的列中,并删除该行中的所有空列。期望的输出将是这样的

<table class="table table-bordered table-responsive">
  <thead>
    <tr class="tablewhite">
      <th>&nbsp;No</th>
      <th>Options</th>
      <th>Dash</th>
      <th>mm</th>
      <th>Inch</th>
      <th>mm</th>
      <th>mm</th>
    </tr>
  </thead>
  <tbody>
    <tr class="tablecontentwhite">
      <td>19904408</td>
      <td>S/G</td>
      <td>-4</td>
      <td>4.4</td>
      <td>5/16"</td>
      <td>7.9</td>
      <td>20.0</td>
    </tr>
    <tr class="tablecontentblue">
      <td colspan="7">&nbsp;Material: Acidproof Stainless Steel with bronze inserted thread.</td>

    </tr>
    <tr class="tablecontentwhite">
      <td colspan="7">&nbsp;- K=Clevis Pin Treaded w/Nut, G=Clevis Pin w/G-ring</td>

    </tr>

  </tbody>
</table>

谁能指出实现这一目标的正确方法?

最佳答案

只是提供一个想法。你可以试试这个。适用于下一个空元素。

    $('tr').each(function(index, tr) {
    var previous = false;
    $(tr).find('td').each(function(index1, td) {
        if(td.innerText == "") {
            if(previous) {
                var p = $(previous);
                if(!p.attr('colspan')) {
                    p.attr('colspan', 1);
                }
                p.attr('colspan', parseInt(p.attr('colspan'))+1);
                $(td).remove();
            }
        } else {
            previous = td;
        }
    });
});

你也可以这样写

 $('tr').each(function(index, tr) {
    $(this).find('td:not(:empty)').attr('colspan', $(this).find('td:empty').length);
    $(this).find('td:empty').remove();
});

要拆分单元格长度,您可以更改第二行

$(this).find('td:not(:empty)').attr('colspan', $(this).find('td:empty').length/$(this).find('td:not(:empty)'));

http://jsfiddle.net/Lmtx2ncq/

关于javascript - 使用 jquery 编辑表中特定行的 colspan 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32133506/

相关文章:

javascript - 如果已经使用 Jquery 检查,需要帮助取消选中单选按钮

javascript - g 的替代方案 :select (multiple values)

javascript - 错误类型错误 : Cannot read property 'db' of undefined

html - 无法让文本环绕圆形图像

javascript - 自动完成(自动过滤?),使用 jQuery 委托(delegate)

java - 从 Java Servlet 返回字符串数组到 jQuery

html css 表格不会排队

javascript - Jquery哪个事件比这个更好?

javascript - 如何将我的 JavaScript 代码转换为小书签?

javascript - 使用jquery非实时更改图像