1. 程式人生 > >JQuery外掛:1、為什麼要返回return this.each()

JQuery外掛:1、為什麼要返回return this.each()

  經常在JQuery外掛中發現一個問題,為什麼方法返回的都是return this.each()

jQuery.fn.test= function(){ 
   this.css("background","#ff0");//因為呼叫物件是JQuery物件,這裡面的this為jquery物件,而不是dom物件 
   return this.each(function(){  
          alert("this"+this+this.innerHTML); //each方法迴圈中的this為dom物件。 
   }); 
};

這裡就要說到JQuery的一大特性,鏈式呼叫。

<div id="color">
    <p id="c1">1111</p>
	<p id="c2">2222</p>
	<p id="c3">3333</p>
</div>

<script type="text/javascript">

$("#color").find('#c1').css("color","red").next().css("color","blue").next().css("font-size","20px");

</script>

JQuery中的大多方法,返回的都是呼叫者本身,所以我們可以通過一條語句完成很多的操作。作為JQuery外掛同時也要滿足這點,所以我們也要返回一個JQuery物件。

那麼有個疑問,既然要返回JQuery物件,我幹嘛不直接返回 return this?

答:this此時就是一個JQuery物件 ,$.each()同樣是JQuery遵循鏈式方法,所以呼叫this.each()的結果 就是 return this.

這樣簡寫不僅先執行了each內的方法又return this,

return this.each(function() {
    $(this).append(' - ' + $(this).data('x'));
});
           

等價於

var objs = this;
     for (var i=0; i<objs.length; i++) {
        var obj = objs[i];
        $(obj).append(' - ' + $(obj).data('x'));
};
return this;

相關推薦

JQuery外掛1為什麼返回return this.each()

  經常在JQuery外掛中發現一個問題,為什麼方法返回的都是return this.each() jQuery.fn.test= function(){ this.css("background","#ff0");//因為呼叫物件是JQuery物件,這裡面的thi

SpringBoot 實戰1 為 eclipse 安裝 SpringBoot 外掛

我是新手小白,剛接觸spring boot ,由於實在走了許多彎路,所以想寫篇部落格跟大家探討一下,在eclipse 裡安裝spring boot外掛的過程佔用好多時間,我給出的方案: 檢視自己的eclipse版本: help->about ecl

解決AJAX跨域1利用JSONP;2JS設置Header

javascrip char 響應 ajax請求 cep foo ace 類型 stat 一、利用JSONP:   首先來看看在頁面中如何使用jQuery的ajax解決跨域問題的簡單版: $(document).ready(function(){ var url=

第一階段Python學習1基礎知識if語句循環

定義變量 assert loop 所有 方法 right 源碼 under 速度 本文內容:   一、Python介紹級應用方向   二、Python 特性   三、hello world 程序   四、Python 格式化輸出   五、變量、數據類型、註釋   六、表達

SQL SERVER 下1遞歸查詢父分類下的各個子分類。 2查詢每個商品分類中最貴的前兩個商品SQL

nio span clas 適用於 商品 一行 class com 分享圖片 1、遞歸查詢父分類下的各個子分類。表設計: SQL: --CTE 語句(適用於MSSQL2005以後版本) with cte_testNavi(Id,Name,Pid ) as ( --這是查

python作業/練習/實戰1簡單登錄腳本

lan href else 次數 成功 welcom lse 學習 教程 作業要求 寫一個登陸的小程序 username = xiaoming passwd = 123456 1、輸入賬號密碼,輸入正確就登陸成功,   提示:歡迎xxxx登陸,今天的日

面試題小記1統計字符串出現的次數,2約瑟夫環問題

lse UNC aaa ret nal 約瑟夫環問題 b2c else 用法 今天面到了一個比較有意思的筆試題,先記錄一下:1.字符串類似‘aaabbccddd’,寫個方法得出‘3a2b2c3d‘,即統計字符串出現的個數$arr = str_split(‘aaabbccdd

實驗目的 1、理解使用者與模式的概念,掌握oracle中使用者管理的基本方法 2理解系統許可權物件許可權的概念,掌握分配許可權的方法 3理解角色的概念,掌握角色的應用方法 實驗內容使用者

撰寫人——軟體二班——陳喜平 一、使用者管理與應用 1、檢視使用者與模式 show USER; 2、建立使用者 sqlplus sys/[email protected] as sysdba CREATE USER t16436220 IDENTIFIED B

演算法題集錦1判斷一個整數是否是迴文數

1、判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 方法一:字串切片   方法二:數字全部反轉,不考慮反轉後整數溢位問題(python中整型不會溢位)      方法三:數字反轉一半,考慮反轉後整數溢位問題(

Java之路breakcontinue和return

1、不帶標籤break public class BCR { public static void main(String[] args) { int i, j; for(i = 1; i < 10; i++) { for(j = 1; j < 10; j++

基礎教程1VMware Workstation下載與安裝

1.1 重要提示 安裝軟體之前,請先退出360、電腦管家等安全類軟體,這類軟體會阻止我們安裝的軟體進行登錄檔註冊,很可能導致安裝失敗。 1.2 VMware Workstation下載與安裝 1.2.1 下載 開啟VMware Workstation官網下載地址https

Java之路breakcontinue與return的區別

1、不帶標籤break public class BCR { public static void main(String[] args) { int i, j; for(i = 1; i < 10; i++) { for(j = 1; j < 10; j++

生產者消費者問題(Producer1Consumer1Buffer1

生產者消費者問題是一個著名的執行緒同步問題,該問題描述如下: 有一個生產者在生產產品,這些產品將提供給若干個消費者去消費,為了使生產者和消費者能併發執行,在兩者之間設定一個具有多個緩衝區的緩衝池,生產者將它生產的產品放入一個緩衝區中,消費者可以從緩衝區中取走產品進行消費,顯

React框架1React簡介

宣告:本教程不收取任何費用,歡迎轉載,尊重作者勞動成果,不得用於商業用途,侵權必究!!!!   對於前端來講,最浪費效能的就是DOM操作,虛擬DOM幫我們減少了操作的次數,從而使我們提高了效能。JSX是一個非常創造性的語法,它相當於允許在JS裡面直接寫html

常用演算法之1最小二乘法(1

深度學習發展到如今的地位,離不開下面這 6 段程式碼。本文介紹了這些程式碼的創作者及其完成這些突破性成就的故事背景。每個故事都有簡單的程式碼示例,讀者們可以在 FloydHub 和 GitHub 找到相關程式碼。 最小二乘法 所有的深度學習演算法都始於下面這個數學公式(

JQuery外掛批量上傳SWFUpload

<div class="album"> <div> <span>會員相簿</span> &

java網路程式設計1計算機網路?網路通訊的組成?什麼是ip協議埠號?

宣告:本教程不收取任何費用,歡迎轉載,尊重作者勞動成果,不得用於商業用途,侵權必究!!! 文章目錄 計算機網路 網路ip 網路協議 網路埠號 計算機網路 計算機網路是相互連線的獨立自主的計算機的集合,最簡單的網路形式由兩臺計算機組成。如下圖: 一臺計算機

java多執行緒1程式程序和執行緒

宣告:本教程不收取任何費用,歡迎轉載,尊重作者勞動成果,不得用於商業用途,侵權必究!!! 文章目錄 程式 程序 執行緒 程式 是計算機指令的集合,它以檔案的形式儲存在磁碟上。   程序 是一個程式在其自身的地址空間中的一次執行活動。 如:當我

徹底解密C++寬字元1從char到wchar_t

<本文PDF文件下載>“這個問題比你想象中複雜”(我也學下BS的風格,雖然這句話是我自己臨時想說的。^^)從字元到整數char是一種整數型別,這句話的含義是,char所能表示的字元在C/C++中都是整數型別。好,接下來,很多文章就會舉出一個典型例子,比如,'a

bootstrap中jquery外掛——警告框工具提示框彈出框模態框

bootstrap的JavaScript外掛中提供了幾種形式的提示框。其中就有警告框、工具提示框、彈出框和模態框。下面就來一個一個的看看它們是怎樣使用的吧! 警告框 它就是這個樣子的,點選右側的小叉子可以將它隱藏。如果不想要淡淡消失的效果可以將 .f