亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否有一個原生的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 關注
  • 441 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號