Jak znaleźć identyfikator klikniętego przycisku?
<button id="1" onClick="reply_click()"></button>
<button id="2" onClick="reply_click()"></button>
<button id="3" onClick="reply_click()"></button>
function reply_click()
{
}
javascript
html
Bin Chen
źródło
źródło
Odpowiedzi:
Musisz wysłać identyfikator jako parametry funkcji. Zrób to tak:
Spowoduje to wysłanie identyfikator
this.id
jakoclicked_id
które można wykorzystać w swojej funkcji. Zobacz to w akcji tutaj.źródło
event.target.id
(dla mnie zarówno Firefox, jak i IE go rzucały), jest to świetne rozwiązanie, które działa we wszystkich trzech głównych przeglądarkach.Ogólnie rzecz biorąc, łatwiej jest utrzymać porządek, jeśli oddzielisz kod i znaczniki. Zdefiniuj wszystkie elementy, a następnie w sekcji JavaScript określ różne działania, które powinny zostać wykonane na tych elementach.
Gdy wywoływany jest moduł obsługi zdarzeń, jest on wywoływany w kontekście klikniętego elementu. Tak, identyfikator ten będzie odnosić się do elementu DOM, który kliknął. Następnie można uzyskać dostęp do atrybutów elementu za pośrednictwem tego identyfikatora.
Na przykład:
źródło
KORZYSTANIE Z PURE JAVASCRIPT: Wiem, że jest późno, ale może być dla przyszłych osób, które mogą pomóc:
W części HTML:
W kontrolerze JavaScript:
W ten sposób nie musimy wiązać „id” elementu podczas wywoływania funkcji javascript.
źródło
this
jako parametronClick
(właściwie nie używając onClick, ale onChange, czy to może być problem?). Sprawdziłem też trochę i wydaje się, że istnieje wiele zamieszania wokół tejevent
zmiennej - czy jest to parametr „niejawny”, czy też musi to być wyraźnie określone jako argument (tzn.function reply_click(event)
Które widziałem również w niektóre lokalizacje)? Czy jest dostępny tylko przy przypisywaniu nasłuchiwania zdarzeń przezaddEventListener
...? Bawiłem się, ale nie mogłem go uruchomić.(Myślę, że
id
atrybut musi zaczynać się od litery. Może być niepoprawny).Możesz udać się na delegację wydarzenia ...
... ale to wymaga relatywnej wygody w przypadku zwariowanego modelu eventu.
źródło
e
argument jest generowany automatycznie. Jeśli nie jest, musimy mieć do czynienia z IE6-8, który zamiast tego zapewnia ten użyteczny obiekt za pośrednictwemwindow.event
.źródło
źródło
Jak to zrobić bez wbudowanego JavaScript
generalnie zaleca się unikanie wbudowanego JavaScript, ale rzadko istnieje przykład jak to zrobić.
Oto mój sposób dołączania zdarzeń do przycisków.
Nie jestem do końca zadowolony, jak długo zalecana metoda jest porównywana z prostym
onClick
atrybutem.Tylko przeglądarki 2014
Tylko przeglądarki z 2013 r
Przeglądarka
Przeglądarka z jQuery
Możesz uruchomić to zanim dokument będzie gotowy, kliknięcie przycisków będzie działać, ponieważ dołączamy zdarzenie do dokumentu.
Oto jsfiddle
Z jakiegoś dziwnego powodu
insertHTML
funkcja w nim nie działa, chociaż działa we wszystkich moich przeglądarkach.Zawsze można wymienić
insertHTML
zedocument.write
jeśli nie przeszkadza, że to wadyŹródła:
źródło
Jeśli nie chcesz przekazywać żadnych argumentów do funkcji onclick, po prostu użyj,
event.target
aby uzyskać kliknięty element:źródło
W czystym javascript możesz wykonać następujące czynności:
sprawdź na JsFiddle
źródło
Możesz to po prostu zrobić w ten sposób:
źródło
id=obj;
i po prostu miećalert(obj);
źródło
źródło
Przycisk 1 Przycisk 2 Przycisk 3
źródło
Przepraszam, że to późna odpowiedź, ale jest naprawdę szybka, jeśli to zrobisz: -
Pobiera identyfikator dowolnego klikniętego przycisku.
Jeśli chcesz tylko kliknąć wartość przycisku w określonym miejscu, po prostu umieść je w pojemniku jak
i zmień kod na: -
mam nadzieję, że to pomoże
źródło
Spowoduje to zarejestrowanie identyfikatora klikniętego elementu: addFields.
źródło