国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jquery中this的使用說明

2019-11-21 00:15:39
字體:
來源:轉載
供稿:網(wǎng)友

原來js中的this這么好用

復制代碼 代碼如下:

$(document).ready(function(){
  var DragElement=null;
  $("#zz").mousedown(function(){
  DragElement=this;//這時this指的就是$("#zz")對象
  $(document).mousemove(function(){
  如果直接$(this).css("left")//由于是在mousemove內,這樣this對象就不是$("#zz"),
  這時可以用$(DragElement).css("left")//這樣取的就是$("#zz")
})
})
})


$(this)生成的是什么

$()生成的是什么呢?實際上$()=jquery(),那么也就是說返回的是一個jquery的對象。
題外話:通常我們?yōu)榱撕啽阒苯邮褂?(),實際上,該函數(shù)省略了一個參數(shù)context,即$(selector)=$(selector,document).如果指定context,可以指定context為一個dom元素集或者jquery對象。

那么依照,$()返回的是jquery對象這一結論,我們可以得出$(this)得到的是一個jquery對象.我們可以使用萬能的alert()方法打印出一個對象:
alert($('#btn'));
顯示的結果:

該圖紅色框勾選出來的是一個object,不用考慮,該object自然是jquery的對象咯。也即是說我們用通過$('#btn')來調用jquery的方法和屬性等。

this代表什么?

this,編程的人都知道this表示上下文所處的這個對象,這個自然是不錯的,可是這個對象到底是個什么對象呢?加入js里面也有getType的話返回的值會是什么呢?其實js里面不需要使用getType,因為我們有萬能的alert.請看看下面的代碼:
復制代碼 代碼如下:

$('#btn').bind("click",function(){

alert(this);
alert($(this));
});

根據(jù)我們的經(jīng)驗(因為$()生成的是jquery的對象嘛),this自然是一個jquery的對象咯??墒俏覀兛纯捶祷氐慕Y果:


返回的是什么?【object HTMLInputElement】――偉大的html對象,嘿嘿。所以我們通常在直接使用this.val()或者直接通過this來調用jquery所特有的方法或屬性的時候會報錯誤: 為什么呢?明知故問!html對象當然“不包含屬性或方法”了。那么為什么在一個jquery對象的上下文中調用this返回的是一個html對象而不是jquery對象 呢?翻遍jquery的api文檔,貌似jquery中并未對this這一關鍵字進行過特殊“處理”,也就是說這里this是js中的,而不是jquery重新定義了的。so...當然這僅僅是我自己的想法,如果有對此更了解的朋友可以留言更正。而我們再看一下以上代碼中alert($(this));的返回,自然是jquery的對象了,在此調用jquery特有的方法和屬性,完全沒有問題。

結論:

this,表示當前的上下文對象是一個html對象,可以調用html對象所擁有的屬性,方法
$(this),代表的上下文對象是一個jquery的上下文對象,可以調用jquery的方法和屬性值。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 泽库县| 太保市| 旬邑县| 高台县| 安平县| 焦作市| 永济市| 昌乐县| 朝阳市| 林口县| 白城市| 通辽市| 陵水| 黄梅县| 新泰市| 巴彦淖尔市| 东光县| 右玉县| 宁夏| 阳城县| 衡东县| 黔南| 红原县| 东城区| 东台市| 沙洋县| 简阳市| 湖口县| 福鼎市| 奉新县| 吴川市| 沂源县| 灵台县| 方正县| 连南| 荣成市| 绥化市| 巢湖市| 平原县| 金溪县| 侯马市|