如何对数组中的元素进行排序:jQuery

Gau*_*tam 1 javascript arrays jquery jquery-ui

简介:我有一个表,其中为每个btn点击添加了行.我正在使用jquery-ui sortable()函数来移动/排序行.

让我说我有这个:

<tbody>
  <tr><td>A</td></tr>
  <tr><td>B</td></tr>
  <tr><td>C</td></tr>
  <tr><td>D</td></tr>
  <tr><td>E</td></tr>
  <tr><td>F</td></tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)

问题:我可以使用sortable()函数移动行.但我无法更新行中的元素.我正在使用这个

$('.report-configuration .configuration-table tbody').sortable({
'change': function(event, ui){
    arr=['a','b','c','d','e','f'];
    console.log(ui);
    var tmp = arr.splice(ui.originalPostion);//i am missing logic here
    arr.splice(ui.postion, tmp);
    console.log(arr);

}});
Run Code Online (Sandbox Code Playgroud)

我正在寻找更新阵列中位置的逻辑.

小智 5

在sortable结束后,html也发生了变化.使用jQuery,您可以选择更改的html并确定正确的序列.

在您的更改回调函数中执行类似这样的操作,注意arr具有正确顺序的新数组:

var arr = []
$(this).find('td').each(function() {
  arr.push($(this).html());
});
console.log(arr);
Run Code Online (Sandbox Code Playgroud)