日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JQuery中隐式迭代和each的区别(通过反选功能解析)

發布時間:2025/4/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JQuery中隐式迭代和each的区别(通过反选功能解析) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在學JQuery,發現它的確是個很給力的東東。。。。不過各種符號,各種選擇器,稍有點亂,還要在日后工作中經常用才能熟練起來。

今天在學習時,遇到這樣一個問題,是在做checkbox的反選按鈕時,兩種語句,感覺在理論上都能通,但實際用的時候發現有一個不好用,百思不得其解。后來想著想著,好像是想通了。。。所以就說一下JQuery中隱式迭代和each的區別。


思路一:通過隱式迭代來搞定

$("#inverseSelect").click(function(){

$(":checkbox[name=test]").attr("checked",!$(this).attr("checked"));

});


思路二:通過each來搞定

$("#inverseSelect").click(function(){

$(":checkbox[name=test]").each(function(){
//經典代碼
$(this).attr("checked",!$(this).attr("checked"));
});

});


產生的問題是,第一種居然不能用!~~~~~~~


個人認為原因是這樣:

先來個小插曲:對于JQuery中,$(":checkbox[name=test]")的返回值是個集合。但是,對它取值時,取到的是集合中的第一個Object的對象。

然后進入正題 :

所以,在方法中,$(this).attr("checked")?它的意思是取到this的checked的屬性,而問題就出在這個this.注意,它沒有放在方法里面,也就是說,this并沒有在迭代中使用,那么也就是說,this,指的并不是前面取出的這個集合中迭代的那個元素,那么,他TMD到底指的是什么呢?

開始我以為它指的是$(":checkbox[name=test]")這個集合,那么拿到的應該是第一個元素。后來我發現我錯了,它指的是居然是"反選"那個按鈕!

為什么呢?原因很簡單:

因為觀察一下,this的上一層的對象是$("#inverseSelect")啊,所以,大家明白了吧。。。。。


總而言之:this這個關鍵字,它指的是它所在方法中的那個對象。所以,第一種方法不可以。

第二種方法可以。

原因是:雖然this所在方法的對象是個集合,但是,通過each關鍵字,這樣,this每次拿到的對象,就是集合中的一個元素了。


自己研究出來的,就是有成就感!











轉載于:https://www.cnblogs.com/java0721/archive/2012/07/20/2602691.html

總結

以上是生活随笔為你收集整理的JQuery中隐式迭代和each的区别(通过反选功能解析)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。