【问题标题】:jQuery - make all table cells draggable except first cell in each rowjQuery - 使所有表格单元格可拖动,除了每行中的第一个单元格
【发布时间】:2011-01-07 17:06:25
【问题描述】:

我不知道如何使表格中的所有单元格都可拖动,每行中的第一个单元格除外。我认为这可能有效:

$("#tableid tbody tr td:not(:first)").draggable({
    connectToSortable: "#sortable",
    helper: "clone",
    revert: "invalid"
});

或者这个:

$("#tableid tbody tr td").not("#tableid tbody tr td:first").draggable({
    connectToSortable: "#sortable",
    helper: "clone",
    revert: "invalid"
});

但两者都只是阻止第一行的第一个单元格可拖动。不是每一行...

有什么想法吗?

【问题讨论】:

    标签: jquery html-table cell draggable


    【解决方案1】:

    要选择除第一个td之外的所有每行,您需要:

    $('#tableid tbody tr').find('td:gt(0)')
    

    在这里测试一下:http://jsfiddle.net/KsUCj/

    通过调用:first,您将找到整个集合中的第一个元素。

    此外,如果您将每行中的第一个单元格视为特殊单元格,听起来您实际上可能想要这个标记:

    <table><thead><tr>
      <th></th>
      <th scope="col">Column Head 1</th>
      <th scope="col">Column Head 2</th>
    </tr></thead><tbody><tr>
      <th scope="row">Row Head</th>
      <td>Row Cell 1</td>
      <td>Row Cell 2</td>
    </tr><tr>
      <th scope="row">Row Head</th>
      <td>Row Cell 1</td>
      <td>Row Cell 2</td>
    </tr></tbody></table>
    

    这不仅更加语义化,而且为行头的 CSS 样式提供了更好的挂钩,而且您不会遇到这个问题,因为 tbody tr td 会选择除第一列之外的所有列。

    【讨论】:

    • 感谢弗罗兹!这很完美。仅供参考,不幸的是我无法编辑标记。我不得不用我所拥有的东西工作。再次感谢:)
    【解决方案2】:

    不应该是 'tr:first td' 而不是 'tr td:first' 吗?

    【讨论】:

    • OP 不想要第一行,他/她想要每行的第一个单元格。
    • 'He',你说得对,我想要每一行的第一个单元格!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 2022-10-24
    • 2013-07-17
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 2021-10-18
    相关资源
    最近更新 更多