Создание объекта из атрибутов позиции с использованием индекса <th>
в качестве ключей.
Затем используйте этот объект в обратном вызове sort()
, чтобы найти новый порядок для каждого элемента
const colOrder = {}
$('thead th').each(function(i){
colOrder[i] = parseInt( $(this).attr('position') );
});
$('tr').html(function(i){
return $(this).children().sort(function(a,b){
const aOrder = colOrder[$(a).index()],
bOrder = colOrder[$(b).index()];
return aOrder - bOrder;
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<thead>
<tr>
<th position = "3">Email</th>
<th position = "1">Name</th>
<th position = "2">Phone</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ali@gmail.com</td>
<td>Hamid</td>
<td>0776567432</td>
</tr>
</tbody>
</table>