2016-04-29 3 views
7

Jeśli mój html jest tak jak poniżejCo jest necessasity z # w jQuery

<div id="TestHash"> </div> 

mogę uzyskać do niego dostęp, jak $("#TestHash")$(TestHash). Oba będą takie same. jakie jest użycie elementu bez # ??

+0

oba nie będą takie same. sprawdź poprawnie. drugi selektor rzuci błąd, ponieważ 'TestHash' jest używana jako zmienna. –

+1

Powinien pojawić się błąd z '$ (TestHash)'. –

+0

$ (TestHash) powinno się zawiesić, ponieważ nie ma zdefiniowanego var TestHash. Jest to równe $ (niezdefiniowane); –

Odpowiedz

6

W rzeczywistości istnieje artefakt w języku Javascript - elementy o identyfikatorze automatycznie wypełniają globalny obszar nazw.

Dlatego możesz uzyskać do niego bezpośredni dostęp, tak jak jesteś ($(TestHash)). Jest to jednak niezrozumiany fragment pozostałych ze starszych przeglądarek, więc nie powinieneś na nim liczyć.

Tam, gdzie to możliwe, należy zawsze korzystać z wersji $("#myId").

+0

Zawsze używam tylko z #. Widziałem jakiś kod bez selektorów. Byłem zaskoczony bez wyjątku. Działa dobrze. Muszę wiedzieć, jak to działa. To jest temat, który tutaj zamieściłem. – suresh

+1

Taka rozmowa targowa - staraj się jej unikać. Nie sądzę, że w najbliższym czasie zostanie on odrzucony jako funkcja w przeglądarkach - ale spowoduje to problemy, gdy zaczniesz modularyzować swoje js, a co nie. – Chris

+0

+1 już miał napisać odpowiedź i link do jakiegoś zasobu z dodatkowymi informacjami, ale zaskakująco trudno jest znaleźć cokolwiek na ten temat ... Jedyne co wiem to to, że jest rozdział 14.7 w 'Javascript: The Definitive Guide (6th edycja) " –

Powiązane problemy