【问题标题】:Table td and jquery - set same number of TD for each TR表 td 和 jquery - 为每个 TR 设置相同数量的 TD
【发布时间】:2016-07-06 13:46:48
【问题描述】:

我有一个 HTML 表格,每行有 2 个单元格。

我使用 jquery-ui-sortable 通过拖动和排序“td”,但不幸的是每行的 TD 编号可以更改。

我希望在排序之后,“td”会自动排序,以便它们恢复为每行两个。

谢谢

 $(function() {
    $( "#sortable" ).sortable({items: 'td'});
    $( "#sortable" ).disableSelection();
	
  });  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<table id="sortable">  
<tr>
  <td>1</td>
  <td>2</td>
 </tr>
 <tr>
  <td>3</td>
  <td>4</td>
</tr>
<tr>
  <td>5</td>
  <td>6</td>
</tr>
</table>

【问题讨论】:

    标签: javascript jquery html jquery-ui-sortable


    【解决方案1】:

    要解决此问题,您需要在排序操作完成后将 td 元素重新分组为 2 行。试试这个:

    $(function() {
      $("#sortable").sortable({
        items: 'td',
        stop: function() {
          var $table = $('#sortable');
          var $tds = $table.find('td');
          $table.empty();
          for (var i = 0; i < $tds.length; i += 2) {
            $tds.slice(i, i + 2).wrapAll("<tr></tr>").parent().appendTo($table);
          }
        }
      });
      $("#sortable").disableSelection();
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
    <table id="sortable">
      <tr>
        <td>1</td>
        <td>2</td>
      </tr>
      <tr>
        <td>3</td>
        <td>4</td>
      </tr>
      <tr>
        <td>5</td>
        <td>6</td>
      </tr>
    </table>

    【讨论】:

    • 它工作得很好,但是......在“停止”之后,“排序”功能保持不活动状态,直到我不进行第二次点击。不幸的是,这仅在我的软件中可见...代码太大,无法在此处发布
    猜你喜欢
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    • 2014-04-14
    • 2011-04-25
    • 2015-12-24
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多