84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
有時候在用JQuery的 for in 和 each 迴圈的時候,會循環出元素有關的屬性,這些屬性這是做什麼用的,能通俗的解釋下嗎,為什麼用for迴圈就不會出現?
程式碼:
A B C
控制台截圖
因為$("a")返回的是一個jQuery對象,另外它並不是一個數組,而是一個對象,你透過Array.isArray來判斷一下就知道了,你說的多出來的屬性,它們是用來儲存一些jQuery內部需要用到的東東,如果你想要一個乾淨的數組,可以使用$('a').get();
for循環沒有循環出多餘的屬性那是因為你循環的問題,你傳遞的是[0]、[1]這樣東東,而你說的那些多餘的屬性,它可不是數字,自然就不會被循環出來啦。
$("a")本身會得到一個偽數組,對它each()是在這個數組裡循環,每次循環處理的是一個jQuery 封裝的"a"對象,列出來的屬性是這個"a"的jQuery 物件的屬性。如果沒有$(this),直接用this印出來的應該是一個 DOM 物件其及屬性。這個用for應該是一樣的效果。
$("a")
each()
"a"
$(this)
this
for
因為$("a")返回的是一個jQuery對象,另外它並不是一個數組,而是一個對象,你透過Array.isArray來判斷一下就知道了,你說的多出來的屬性,它們是用來儲存一些jQuery內部需要用到的東東,如果你想要一個乾淨的數組,可以使用$('a').get();
for循環沒有循環出多餘的屬性那是因為你循環的問題,你傳遞的是[0]、[1]這樣東東,而你說的那些多餘的屬性,它可不是數字,自然就不會被循環出來啦。
$("a")
本身會得到一個偽數組,對它each()
是在這個數組裡循環,每次循環處理的是一個jQuery 封裝的"a"
對象,列出來的屬性是這個"a"
的jQuery 物件的屬性。如果沒有$(this)
,直接用this
印出來的應該是一個 DOM 物件其及屬性。這個用for
應該是一樣的效果。