是否有本机jQuery函数来切换元素?
2022-08-30 01:43:09
我可以轻松地用jQuery交换两个元素吗?
如果可能的话,我希望用一行来做到这一点。
我有一个选择元素,我有两个按钮可以上下移动选项,并且我已经有选择和目标选择器,我用if来做,但我想知道是否有更简单的方法。
我可以轻松地用jQuery交换两个元素吗?
如果可能的话,我希望用一行来做到这一点。
我有一个选择元素,我有两个按钮可以上下移动选项,并且我已经有选择和目标选择器,我用if来做,但我想知道是否有更简单的方法。
这是一种仅使用jQuery解决此问题的有趣方法(如果2个元素彼此相邻):
$("#element1").before($("#element2"));
或
$("#element1").after($("#element2"));
保罗是对的,但我不确定他为什么要克隆有关元素。这并不是必需的,并且会丢失与元素及其后代关联的任何引用或事件侦听器。
这是一个使用纯DOM方法的非克隆版本(因为jQuery实际上没有任何特殊功能来简化此特定操作):
function swapNodes(a, b) {
var aparent = a.parentNode;
var asibling = a.nextSibling === b ? a : a.nextSibling;
b.parentNode.insertBefore(a, b);
aparent.insertBefore(b, asibling);
}