前端學習——選擇結果為JQuery對象還是DOM對象?

來源:互聯網
上載者:User

標籤:jquery   dom   

0.前言    在學習和使用javascript過程中經常使用JQuery的選取器,但是在擷取到選擇結果之後經常“犯迷糊”,需要一個DOM對象時或者一個JQuery對象,這樣的尷尬經常遇到。為了讓自己不再迷糊通過博文總結經驗教訓,希望自己在總結過程中緩慢提高。    【相關博文】    【前端學習——如何修改<a href="#">url name</a> 使用javascript和JQuery】    【樣本頁面】——test-ul.html
<!DOCTYPE html><meta charset="utf-8"><html><head> <!-- <script src="jquery.js"></script> --><script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></head> <body> <ul><li>Raspberry</li> <li>Arduino</li> <li>Intel Galileo</li> </ul></body> </html>

1.選擇所有的li    【使用jquery】
var $obj = $("li");console.log($obj);
    【使用javascript】
var obj = document.getElementsByTagName("li");console.log(obj);
     【主要區別】    此時$obj為Jquery對象集合,而obj為DOM對象集合。
2.Jquery對象變為DOM對象——[]方法
var obj = $("li")[0];console.log(obj);                    // <li>Raspberry</li>console.log(obj.innerHTML);     // Raspberry
    【說明】    此處obj為DOM對象,可以使用屬性innerHTML。如果使用Jquery的html方法那麼瀏覽器將會發出錯誤警告。
3.Jquery對象變為DOM對象——get方法
var obj = $("li").get(1);console.log(obj);                    // <li>Arduino</li>console.log(obj.innerHTML);     // Arduino
    【說明】    []方式和Jquery的get方法效果相同。
4.使用javascript達到相同效果
var obj = document.getElementsByTagName("li")[2];console.log(obj);                    // <li>Intel Galileo</li>console.log(obj.innerHTML);     // Intel Galileo

5.選擇子項目時仍為Jquery對象——eq方法
var $obj = $("li").eq(0);console.log($obj);console.log($obj.html());           // Raspberry
    【說明】    使用eq方法獲得Jquery對象,那麼獲得此對象的HTML內容需要使用Jquery的html()方法,而不是javascript的innerHTML 屬性。
6.使用Jquery遍曆所有子節點
$("li").each(function(index,item){    console.log(item);                  // item為DOM對象    console.log(item.innerHTML);   // 依次輸出 Raspberry Arduino Intel Galileo});
    【說明】    each遍曆的item為DOM對象而不是Jquery對象。
7.遍曆時再變為Jquery對象
$("li").each(function(index,item){    $item = $(item);                    // 再次變為Jquery對象    // console.log($item);                  console.log($item.html());       // 依次輸出 Raspberry Arduino Intel Galileo});
    【說明】     $item = $(item)再一次變化出JQuery對象,$(item)此時和$(<li>Raspberry<li>)等價,意為選擇一個DOM對象並變為JQuery對象。  
8.使用Javascript遍曆所有子節點
var objs = document.getElementsByTagName("li");for(var i=0; i<objs.length; i++) {    console.log(objs[i]);    console.log(objs[i].innerHTML);    // 依次輸出 Raspberry Arduino Intel Galileo}

9.總結    【1】使用Jquery選取器之後可以使用[]和get獲得子DOM,也就是說[]和get具有把Jquery對象轉換為DOM對象的功能。    【2】eq方法獲得的對象仍為JQuery對象    【3】each方法遍曆時的item為DOM對象    【4】JQuery對象使用JQuery方法,DOM對象使用DOM方法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.