Jquery真的不難~第五回 JQ中的遍歷(遍歷中的性能知識點)


回到目錄

上一回主要說的是JQ中的幾個主要的事件,文章的最后還介紹了匿名函數的使用,恩,今天主要來看一下JQ中的遍歷,就是在JQ中進行循環操作以及在遍歷時要注意的地方。

前言

要講遍歷就要說數組,你不可以對一個單獨的變量進行遍歷吧,呵呵,數組是一些各種類型變量的集合,在JS中一個數組,你完全可以把數字與字符混合在一起,這是合法的。

JS中的數組

數組的定義

  var arr = [1, 2, 3, 4, "one", "two", "three", "four"]; //一維數組
  var props = [["拳頭", "刀", "槍"], ["boxing", "knife  ", "gun"]]; //二維數組

調用

   console.log(arr[0]);
   console.log(props[0][0]);

JS對數組的遍歷

        for (var i in arr) {//可能性不高
            console.log(arr[i]);
        }

        for (var i = 0; i < arr.length; i++) { //性能差的
            console.log(arr[i]);
        }

        for (var i = 0, max = arr.length; i < max; i++) {//性能好的
            console.log(arr[i]);
        }

JQ中的集合

對於在JQ中用選擇器選擇對象后,它將返回一個JQ對象,這個對象可以是一個元素,也可能是一個集合,一般地,我們用$("#ID")返回的是一個對象,因為ID在頁面中正常情況下是唯一的,而使用$(".className"),Find()等返回一般是個集合,或者說是個JQ對象數組,看代碼:

 <script>  
  $(function () {
            //返回JQ對象集合
            var jqArr = $("#menu_title").find("dt");
            console.log("menu_title下的dt元素數量為:" + jqArr.size());
            console.log("menu_title下的第一個dt的內容為:" + jqArr[0].html()); //會出錯,因為jqArr[0]已經不是JQ對象了
            console.log("menu_title下的第一個dt的內容為:" + $(jqArr[0]).html());//正確,因為加上$()后,它將被轉化為JQ對象
        });
 </script>
  <dl id="menu_title">
        <dt>人</dt>
        <dd>
            一種高級動物</dd>
        <dt>狗</dt>
        <dd>
            人類的朋友</dd>
        <dt>貓</dt>
        <dd>
            貓科動物的祖先</dd>
    </dl>

結果為:

JQ對集合的遍歷

         jqArr.each(function (i, o) {
                console.log("第" + i + "號元素的內容是:" + $(o).html());
            });

結果為:

從結果中我們可以看到,$.each(function(i,o){})方法中的i表示JQ數組的索引值,而o表示JQ數組的值,而o加上$()變成JQ對象之后,使用html()這個方法可以輸出o這個對象里的內容;從圖中還可以看到JQ產生的數組的索引也是從0開始的。

總結

JS與JQ數組(集合)的相關知識就介紹到這里了,對於它們的使用還需要各位在實現工作中去體現,另外,在寫代碼時,多站在系統層次上去感覺一下,去用心去體會,你可能會有另外的收獲!

回到目錄

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM