我可以使用jQuery轻松地向上或向下移动li元素吗?

我有这样的菜单:

 

有没有一种简单的方法可以使用jquery重新排序元素? 我想象的是这样的:

 $('#menuAbout').moveDown().moveDown() 

但是,任何其他实现这一点的方式都值得赞赏

实际上并不那么难。 JQuery几乎可以通过“insertBefore”和“insertAfter”方法自行获取。

 function moveUp($item) { $before = $item.prev(); $item.insertBefore($before); } function moveDown($item) { $after = $item.next(); $item.insertAfter($after); } 

你可以像moveDown一样使用它们($(’#menuAbout’)); 并且menuAbout项目将向下移动。

如果你想扩展jQuery以包含这些方法,你可以像这样写:

 $.fn.moveUp = function() { before = $(this).prev(); $(this).insertBefore(before); } $.fn.moveDown = function() { after = $(this).next(); $(this).insertAfter(after); } 

现在你可以调用像$(“#menuAbout”)。moveDown();

没有原生的原型方法,但你可以轻松制作一个:

 $.fn.moveDown = function() { return this.each(function() { var next = $(this).next(); if ( next.length ) { $(next).after(this); } else { $(this).parent().append( this ); } }) } $('#menuAbout').moveDown().moveDown() 

这使用jQuery.prototype.after