JS互換兩元素的位置

同樣是前幾天阿里電話面的一道簡單的DOM操作題,
但是由于自己DOM操作掌握的不熟練,答的很爛.....這里總結一下
首先這里用到了一個API,Node.insertBefore(a,b)在b節(jié)點之前插入a
在這之前首先要獲取這兩個元素的父親節(jié)點

<div>
      <div id="list1">list1</div>
      <div id="list2">list2</div>
      <div id="list5">list5</div>
      <div id="list6">list6</div>
</div>

<style>
      #list1{
        background:red;
      }
      #list2{
        background:orange;
      }
      #list5{
        background:green;
      }
     #list6{
        background:pink;
      }
</style>

假設要交換第一個和第五個元素
首先邏輯是先新建一個節(jié)點(標記節(jié)點),然后把這個節(jié)點插在第二個目標節(jié)點前面,相當于記下一個位置,然后把第二個目標節(jié)點插到第一個目標節(jié)點前面,再把第一個目標節(jié)點插在標記節(jié)點的后面,結束。

JS代碼:

function exchange(id_1,id_2){
  var newNode = document.createElement('div')
  list1.parentNode.insertBefore(newNode,id_2)
  list1.parentNode.insertBefore(id_2,id_1)
  list1.parentNode.insertBefore(id_1,newNode)
  list1.parentNode.removeChild(newNode)
}
exchange(list2,list6)
list2.png
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • ??DOM(文檔對象模型)是針對 HTML 和 XML 文檔的一個 API(應用程序編程接口)。 ??DOM 描繪...
    霜天曉閱讀 3,866評論 0 7
  • ??JavaScript 與 HTML 之間的交互是通過事件實現的。 ??事件,就是文檔或瀏覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,701評論 1 11
  • 簡介網絡瀏覽器很可能是使用最廣的軟件。在這篇入門文章中,我將會介紹它們的幕后工作原理。我們會了解到,從您在地址欄輸...
    wengjq閱讀 2,313評論 2 15
  • 第3章 基本概念 3.1 語法 3.2 關鍵字和保留字 3.3 變量 3.4 數據類型 5種簡單數據類型:Unde...
    RickCole閱讀 5,527評論 0 21
  • 一、樣式篇 第1章 初識jQuery (1)環(huán)境搭建 進入官方網站獲取最新的版本 http://jquery.co...
    凜0_0閱讀 3,675評論 0 44

友情鏈接更多精彩內容