2017-07-15 45 views
1

請解釋一下,爲什麼this的行爲與我自己有所不同?jQuery`this`在用戶函數中的工作方式怪異

(function ($) { 
    $.fn.wtf = function() { 
     // See in console 
     // `this` returns what expected 
     console.log(this); 
     // `this.html()` returns only the first element's content 
     console.log(this.html()); 
    } 

    $('body').find(':header').wtf(); 
}(jQuery)); 

https://jsfiddle.net/ta7Lmf7s/1/

+0

你期望什麼? –

+2

這就是'html()'顯式做的事情,[docs](http://api.jquery.com/html/)的第一行之一明確指出*「如果選擇器表達式匹配多個元素,只有第一場比賽將其HTML內容返回「* – adeneo

+0

爲什麼不告訴我們你在這裏做什麼,也許你會得到一個解決問題的答案 – adeneo

回答

0

html的()返回第一匹配部件,所以通過使用this.html()的jQuery返回找到的第一個元件,其在你的情況是H1頂部元件。

在此的更多信息可以在文檔中找到:http://api.jquery.com/html/

希望這有助於解答您的問題。

+0

感謝您的回答,歡迎來到Stack Overflow! – bimlas

相關問題