常見的dom操作----原生JavaScript與jQuery

來源:互聯網
上載者:User

標籤:hello   --   類型   ace   文檔   val   clone   父節點   eva   

1.建立元素 文本節點

 

JavaScript:

document.createElement(),只接收一個參數,建立後需要手動將其添加到文檔樹中,例如:

var newDiv = document.createElement("div");
if(document.body){  document.body.appendChild(newDiv);
}else{
  document.documentElement.appendChild(newDiv);
}

document.createTextNode(),只接收一個參數,即要插入節點的文本;

jquery:直接$("<div></div>),或者下面:

  • wrap()   // $A.wrap(‘B‘)即元素A層添加B類型的HTML結果
<div class="container">  <div class="inner">Hello</div>  <div class="inner">Goodbye</div></div>
$(‘.inner‘).wrap(‘<div class = "new"/>‘);
結果:
  <div class="container">     <div class="new">       <div class="inner">Hello</div>     </div>     <div class="new">       <div class="inner">Goodbye</div>     </div>   </div>
  • wrapAll()  //所建立的new <div>包裹了所有匹配的元素:
<div class="container">  <div class="inner">Hello</div>  <div class="inner">Goodbye</div></div>$(‘.inner‘).wrapAll(‘<div class="new" />‘);
 結果:    <div class="container">    <div class="new">     <div class="inner">Hello</div>     <div class="inner">Goodbye</div>    </div>    </div>
  • wrappInner() // $A.wrapInner(‘B‘)即元素A層添加B類型的HTML結果
<div class="container">  <div class="inner">Hello</div>  <div class="inner">Goodbye</div></div>$(‘.inner‘).wrapInner(‘<div class="new" />‘);
 結果:   <div class="container">     <div class="inner">       <div class="new">Hello</div>     </div>     <div class="inner">       <div class="new">Goodbye</div>     </div>   </div>

 

2.節點關係及操作 

JavaScript:

父節點:parentNode

子節點:childNodes

兄弟節點:nextSibling,previousSibling

相關操作:

  • appendChild()  向子節點列表的末尾添加新的子節點
  • insetBefore()    已有子節點之前插入一個新的子節點
  • replaceChild()  替換節點
  • removeChild()  刪除節點
  • cloneNode(true/false)  複製節點

jquery:(比較多選擇,詳情看http://www.css88.com/jqapi-1.9/手冊)

父元素:parent()  parents()

子項目:children()

兄弟節點:next()  nextAll()  prev()  prevAll()  siblings()......

相關操作:

  節點內部插入,插入的內容變子節點

  • append()  appendTo()  向子節點列表的末尾添加新的子節點,注意這兩個內容和目標的位置不同,剛好相反
  • prepend() prependTo() 已有子節點之前插入一個新的子節點,注意這兩個內容和目標的位置不同,剛好相反

  節點外部插入,插入的內容變兄弟節點

  • after()  before() 
  • insertAfter() insertBefore()
  • replaceAll() replaceWith()  功能類似,但是目標和源相反
  • remove() detach() 這兩個相似,都是移除元素,後者不會移除綁定的事件及與該元素相關的jQuery資料
  • empty()  不接受任何參數。不僅移除子項目(和其他後代元素),同樣移除元素裡的文本
  • clone(flase/true) 深度複製所有匹配的元素集合,包括所有匹配元素、匹配元素的下級元素、文位元組點。和原生JavaScript不同,這裡的false/true表示是否會複製元素上的事件處理函數,而原生的表示深複製還是淺複製

常見的dom操作----原生JavaScript與jQuery

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.