2012-06-27 41 views
3

有人可以告訴我thisjQuery(this)之間的區別是什麼?我發現如果我使用'this',並且如果使用jQuery(this),則代碼無效。 jQuery(this)不查詢當前對象並返回它嗎?jQuery中的'this'對象

我想知道圖像的索引被點擊(我現在我們有指數()方法,但還是希望通過下面的邏輯) 下面是完整的代碼:(編輯爲每個請求)

for(i=0;i<5;i++) 
{ 
jQuery("#div1").append("<img src='slider.jpg'>"); 
} 
imgArr=jQuery("#div1>img"); 
jQuery("#div1>img").click(display); 
function display() 
{ 
    for(i=0;i<imgArr.length;i++) 
    { 
    if(this==imgArr[i]) 
    { 
     alert(i); 
    } 
    } 
} 

這裏,如果我用jQuery(this)代替this它不起作用。

+0

檢查這個問題http://stackoverflow.com/questions/8719635/jquery-this-versus -this-and-maybe-even-this –

+0

它取決於它所在的上下文;你能告訴我們更多的代碼嗎?即這是功能的一部分? – bokonic

+0

這裏沒有足夠的信息來確定'this'是什麼...... JavaScript範圍確實足夠大,而且沒有看不到它的背景!看看這裏:http://stackoverflow.com/questions/500431/javascript-variable-scope – Simon

回答

5

我想「this」是第一個例子中DOM元素的引用?

jQuery(this)實際上是一個圍繞一個或多個DOM元素的jQuery包裝器。所以當你比較一個DOM元素時,它永遠不會是平等的。

如果你想從一個jQuery包裝DOM元素,使用索引來獲得的第一個元素:

jQuery(this)[0] === this 
+0

感謝菲利普。現在我更瞭解它。 – codingsplash