我需要动态改变html/js表中列的顺序,你可以告诉我该怎么做? 谢谢大家!更改表列顺序
更改表列顺序
回答
如果你只需要简单地移动列,没有任何花哨的拖放动画,下面的JS应该做的伎俩:
<script type="text/javascript">
$(function() {
jQuery.each($("table tr"), function() {
$(this).children(":eq(1)").after($(this).children(":eq(0)"));
});
});
</script>
根据需要更换号码。这个概念的工作原理
看起来,写这个作为一个班轮是不可能的。包括选择器中的td,即使行选择器似乎在一个单独的索引上保留了每个td,而忽略了行。
一个jQuery网格插件应该这样做,否则。虽然我没有这种插件的经验。
移动列并不难:
您可以使用此功能:
jQuery.moveColumn = function (table, from, to) {
var rows = jQuery('tr', table);
var cols;
rows.each(function() {
cols = jQuery(this).children('th, td');
cols.eq(from).detach().insertBefore(cols.eq(to));
});
}
然后调用它像这样:
var tbl = jQuery('table');
jQuery.moveColumn(tbl, 2, 0);
因此,通过了解该列的索引,以及您想要放置它的索引(从零开始),您可以移动列,包括列标题。
这里是工作的jsfiddle:http://jsfiddle.net/Qsys7/1/
这里是一个jQuery插件,我刚写来切换两列的内容:
$.fn.switchColumns = function (col1, col2) {
var $this = this,
$tr = $this.find('tr');
$tr.each(function(i, ele){
var $ele = $(ele),
$td = $ele.find('td'),
$tdt;
$tdt = $td.eq(col1).clone();
$td.eq(col1).html($td.eq(col2).html());
$td.eq(col2).html($tdt.html());
});
};
试过这个,它实际上只切换单元格的内容而不是列本身。如果你有td元素对它们中包含的内容很重要,这是行不通的。如果你没有这些要求,概念就起作用了。 – 2012-04-12 22:17:27
如果列上有'width'属性或其他样式属性,则移动列的内容并不那么聪明。你只是结束了宽列更窄,反之亦然。 – cartbeforehorse 2014-07-02 22:26:07
- 1. 更改列顺序
- 2. 更改列顺序
- 3. 更改列顺序?
- 4. 更改列顺序
- 5. 更改列表排序顺序内联
- 6. 如何更改列表的顺序?
- 7. 如何更改列表的顺序?
- 8. Html,更改表中的列顺序
- 9. linq更改列顺序
- 10. 更改列的顺序
- 11. SQL来更改列顺序
- 12. Bootstrap:更改列顺序
- 13. jQGrid - 更改列顺序
- 14. Bootstrap 4更改列顺序
- 15. 更改阵列顺序(如列)
- 16. 更改结果中显示的列的顺序,而不更改选择顺序
- 17. SQL:更改表的数据列 - 保留列顺序
- 18. jQuery Mobile - 更改列表排序顺序的按钮?
- 19. 创建表,唯一的列更改排序顺序
- 20. 如何根据行ID列表更改表中行的顺序?
- 21. 如何更改表单中列表项的顺序?
- 22. 更改数据库列的顺序
- 23. 如何更改gridview中列的顺序?
- 24. 更改gridview中列的顺序
- 25. 如何更改此队列顺序?
- 26. 如何更改列的顺序TableLayoutPanel c#
- 27. 在ReportViewer中按列顺序更改组
- 28. 如何更改旧版datatables列顺序?
- 29. Flexbox - 如何更改列的顺序?
- 30. 更改减速排列顺序
改变列是艰难的,不断变化的行很容易 – 2011-03-28 19:47:24
使用表格插件。 http://plugins.jquery.com/projects/plugins/tables – 2011-03-28 19:48:14
你应该在这里提供更多细节。你是否希望允许用户拖放列的顺序?你需要这种灵活性有多大? – jessegavin 2011-03-28 19:48:34