为了账号安全,请及时绑定邮箱和手机立即绑定

是否有一个原生的jQuery函数来切换元素?

是否有一个原生的jQuery函数来切换元素?

白猪掌柜的 2019-08-16 16:03:14
是否有一个原生的jQuery函数来切换元素?我可以轻松地用jQuery交换两个元素吗?如果可能的话,我希望用一行来做这件事。我有一个选择元素,我有两个按钮可以向上或向下移动选项,我已经选择了目标选择器,我用if做了,但我想知道是否有更简单的方法。
查看完整描述

3 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

我找到了一种有趣的方法来解决这个问题,只使用jQuery:

$("#element1").before($("#element2"));

要么

$("#element1").after($("#element2"));

:)


查看完整回答
反对 回复 2019-08-16
?
哔哔one

TA贡献1854条经验 获得超8个赞

保罗是对的,但我不确定他为什么克隆有关的元素。这不是必需的,并且会丢失与元素及其后代关联的任何引用或事件侦听器。

这是一个使用普通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);}


查看完整回答
反对 回复 2019-08-16
?
aluckdog

TA贡献1847条经验 获得超7个赞

不,没有,但你可以鞭打一个:

jQuery.fn.swapWith = function(to) {
    return this.each(function() {
        var copy_to = $(to).clone(true);
        var copy_from = $(this).clone(true);
        $(to).replaceWith(copy_from);
        $(this).replaceWith(copy_to);
    });};

用法:

$(selector1).swapWith(selector2);

请注意,这仅适用于选择器每个只匹配1个元素的情况,否则会产生奇怪的结果。


查看完整回答
反对 回复 2019-08-16
  • 3 回答
  • 0 关注
  • 415 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信