首頁 > web前端 > js教程 > 主體

淺談jQuery中的遍歷函數

青灯夜游
發布: 2021-01-20 16:09:31
轉載
1842 人瀏覽過

本篇文章帶大家來了解jQuery中的遍歷函數。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

淺談jQuery中的遍歷函數

推薦教學:jq教學

#jQuery 遍歷函數

jQuery 遍歷函數包含了用於篩選、尋找和串聯元素的方法。

函數描述
#.add()將元素加入到匹配元素的集合中。
.andSelf()將堆疊中先前的元素集加入到目前集合中。
.children()獲得符合元素集合中每個元素的所有子元素。
.closest()從元素本身開始,逐級向上級元素匹配,並返回最先匹配的祖先元素。
.contents()取得符合元素集合中每個元素的子元素,包括文字和註解節點。
.each()對 jQuery 物件進行迭代,為每個匹配元素執行函數。
.end()結束目前鏈中最近的一次篩選操作,並將匹配元素集合返回到前一次的狀態。
.eq()將符合元素集合縮減為位於指定索引的新元素。
.filter()將符合元素集合縮減為符合選擇器或符合函數傳回值的新元素。
.find()取得目前符合元素集合中每個元素的後代,由選擇器進行篩選。
.first()將匹配元素集合縮減為集合中的第一個元素。
.has()將匹配元素集合縮減為包含特定元素的後代的集合。
.is()根據選擇器檢查目前符合元素集合,如果存在至少一個符合元素,則傳回 true。
.last()將符合元素集合縮減為集合中的最後一個元素。
.map()把目前符合集合中的每個元素傳遞給函數,產生包含傳回值的新 jQuery 物件。
.next()獲得符合元素集合中每個元素緊鄰的同儕元素。
.nextAll()獲得符合元素集合中每個元素之後的所有同儕元素,由選擇器進行篩選(可選)。
.nextUntil()取得每個元素之後所有的同儕元素,直到遇到符合選擇器的元素為止。
.not()從符合元素集合中刪除元素。
.offsetParent()獲得用於定位的第一個父元素。
.parent()取得目前符合元素集合中每個元素的父元素,由選擇器篩選(可選)。
.parents()獲得目前符合元素集合中每個元素的祖先元素,由選擇器篩選(可選)。
.parentsUntil()取得目前符合元素集合中每個元素的祖先元素,直到遇到符合選擇器的元素為止。
.prev()獲得符合元素集合中每個元素緊鄰的前一個同儕元素,由選擇器篩選(可選)。
.prevAll()獲得符合元素集合中每個元素之前的所有同儕元素,由選擇器進行篩選(可選)。
.prevUntil()取得每個元素之前所有的同儕元素,直到遇到符合選擇器的元素為止。
.siblings()獲得符合元素集合中所有元素的同儕元素,由選擇器篩選(可選)。
.slice()將符合元素集合縮減為指定範圍的子集。

 each的用法

 1.陣列中的each

复制代码

 var arr = [ "one", "two", "three", "four"];     
 $.each(arr, function(){     
    alert(this);     
 });   
//上面这个each输出的结果分别为:one,two,three,four    
    
var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]     
$.each(arr1, function(i, item){     
   alert(item[0]);     
});     
//其实arr1为一个二维数组,item相当于取每一个一维数组,   
//item[0]相对于取每一个一维数组里的第一个值   
//所以上面这个each输出分别为:1   4   7     
  
  
var obj = { one:1, two:2, three:3, four:4};     
$.each(obj, function(i) {     
    alert(obj[i]);           
});   
//这个each就有更厉害了,能循环每一个属性     
//输出结果为:1   2  3  4
登入後複製

2 .遍歷Dom元素中






  • Coffee
  • Milk
  • Soda
登入後複製

依序彈出Coffee,Milk,Soda

 3.each和map的比較

下面的範例是取得每一個多框的ID值;

each方法:

定義一個空數組,經過each方法,往數組添加ID值;最後將數組轉換成字串後,alert這個值;

$(function(){
    var arr = [];
    $(":checkbox").each(function(index){
        arr.push(this.id);
    });
    var str = arr.join(",");
    alert(str);
})
登入後複製

map方法:

將每個:checkbox執行return this.id;並將這些返回值,自動的保存為jQuery對象,然後用get方法將其轉換成原生Javascript數組,再使用join方法轉換成字串,最後alert這個值;

$(function(){
    var str = $(":checkbox").map(function() {
        return this.id;
    }).get().join();    
    alert(str);
})
登入後複製

當有需一個陣列的值的時候,用map方法,很方便。

 4.jquery中使用each

例遍數組,同時使用元素索引和內容。 (i是索引,n是內容)

程式碼如下:

$.each( [0,1,2], function(i, n){
alert( "Item #" + i + ": " + n );
});
登入後複製

例遍對象,同時使用成員名稱和變數內容。 (i是成員名稱,n是變數內容)

程式碼如下:

$.each( { name: "John", lang: "JS" }, function(i, n){
alert( "Name: " + i + ", Value: " + n );
});
登入後複製

例遍dom元素,此處以一個input表單元素作為範例。

如果你dom中有一段這樣的程式碼

 
 
 
登入後複製

然後你使用each如下

程式碼如下:

$.each($("input:hidden"), function(i,val){
alert(val); //输出[object HTMLInputElement],因为它是一个表单元素。
alert(i); //输出索引为0,1,2,3
alert(val.name); //输出name的值
alert(val.value); //输出value的值
});
登入後複製

5.each中根據this查找元素

實現效果」回覆」兩個字只有在滑鼠經過的時候才顯示出來

  1. 嗨,第一层评论

登入後複製

js程式碼如下

$("div.reply").hover(function(){
  $(this).find(".comment-reply-link").show();
},function(){
  $(this).find(".comment-reply-link").hide();
});
登入後複製

實現效果,驗證判斷題是否都有選擇

html

  • 1. 阿斯顿按时
    • A .阿萨德发
    • B .阿萨德发
    • C .阿斯顿

登入後複製

js程式碼

//验证单选题是否选中
        $("ul#ulSingle>li.liStyle").each(function (index) {
            //选项个数
            var count = $(this).find("ul>li>:checkbox").length;
            var selectedCount = 0
            for (var i = 0; i < count; i++) {
                if ($(this).find("ul>li>:checkbox:eq(" + i + ")").attr("checked")) {
                    selectedCount++;
                    break;
                }
            }
            if (selectedCount == 0) {
                $(this).find("label#selectTips").show();
                return false;
            }
            else {
                $(this).find("label#selectTips").hide();
            }
        })
登入後複製

 ps:傳說中attr("property ", "value");在部分瀏覽器不管用可以用prop,如果只是判斷可以用$(this).find("ul>li>:checkbox:eq(" i ")").is(" :checked");

6.官方解釋
#以下是官方的解釋:

jQuery.each(object, [callback])
登入後複製

概述 

#通用例遍方法,可用來例遍物件和陣列。

不同於例遍 jQuery 物件的 $().each() 方法,此方法可用於例遍任何物件。回呼函數有兩個參數:第一個為物件的成員或陣列的索引,第二個為對應變數或內容。如果需要退出 each 循環可使回呼函數傳回 false,其它傳回值將被忽略。 

參數 

objectObject :需要例遍的物件或陣列。 

callback (可選)Function :每個成員/元素執行的回呼函數。

更多程式相關知識,請造訪:程式設計影片! !

以上是淺談jQuery中的遍歷函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!