2013-04-11 6 views
7

Czasami widzę konstrukcje takie jak $('<img/>'). Czym różni się $('<img/>') od $('img') i gdzie mogę przeczytać więcej na ten temat?

Próbowałem, patrząc na jQuery Selectors, ale nie znalazłem nic podobnego do tego formatu.

+0

'$ ('')' służy do tworzenia nowego elementu, '$ ('img')' jest selektorem dom, aby uzyskać wszystkie elementy img z dom – stecb

Odpowiedz

5

Funkcja jQuery jest przeciążana w celu skonstruowania nowych elementów jQuery po przekazaniu łańcucha wyglądającego jak HTML. Z docs:

Jeżeli łańcuch jest przekazywany jako parametr do $() jQuery analizuje ciąg aby sprawdzić, czy wygląda HTML (to znaczy, że zaczyna się <tag ... >). Jeśli nie, ciąg jest interpretowany jako wyrażenie selektora, tak jak to wyjaśniono powyżej: . Ale jeśli łańcuch wydaje się być fragmentem kodu HTML, jQuery próbuje utworzyć nowe elementy DOM zgodnie z opisem w kodzie HTML. Następnie tworzony jest obiekt jQuery i zwracany, który odnosi się do tych elementów .

4

$('<img/>')tworzy obraz, natomiast $('img') wybiera wszystkie aktualnie istniejące obrazy.

3

$('<img />') tworzy nowy element <img /> do wstawienia do DOM.

$('img') wybiera wszystkie istniejące elementy <img />.

Generalnie, można by użyć $('<img />') do tworzenia elementów DOM w następujący sposób:

var toAppend = $('<img />'); 
toAppend.appendTo($('#myDiv')); 

Podczas gdy można użyć przełącznika $('img'); do obsługi CSS (jako arbitralne przykład):

$('img').css('marginTop', 20); 

Powyższe spowoduje dodanie marginesu 20 pikseli na górze każdego obrazu w DOM.

Powiązane problemy