Como encontrar o ID do botão que está sendo clicado?
<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
fonte
fonte
Respostas:
Você precisa enviar o ID como os parâmetros de função. Faça isso deste modo:
Isso enviará o ID
this.id
como oclicked_id
qual você pode usar em sua função. Veja em ação aqui.fonte
event.target.id
(para mim, o Firefox e o IE estavam lançando), essa é uma ótima solução que funciona nos três principais navegadores.Em geral, é mais fácil manter as coisas organizadas se você separar seu código e sua marcação. Defina todos os seus elementos e, na seção JavaScript, defina as várias ações que devem ser executadas nesses elementos.
Quando um manipulador de eventos é chamado, ele é chamado no contexto do elemento em que foi clicado. Então, o identificador esta fará referência ao elemento DOM que você clicou. Você pode acessar os atributos do elemento através desse identificador.
Por exemplo:
fonte
USANDO O JAVASCRIPT PURO: Eu sei que é tarde, mas pode ser para as pessoas futuras que ele pode ajudar:
Na parte HTML:
No Javascipt Controller:
Dessa forma, não precisamos vincular o 'id' do elemento no momento da chamada da função javascript.
fonte
this
como parâmetroonClick
( na verdade, não usando onClick, mas onChange, esse talvez seja o problema?). Eu também verifiquei um pouco e parece haver muita confusão sobre essaevent
variável - é um parâmetro "implícito" ou deve ser declarado explicitamente como argumento (ou sejafunction reply_click(event)
, que também vi em alguns locais)? Está disponível apenas ao atribuir o ouvinte de eventos viaaddEventListener
...? Eu brinquei, mas não consegui fazê-lo funcionar.(Acho que o
id
atributo precisa começar com uma letra. Pode estar errado.)Você poderia ir para a delegação do evento ...
... mas isso exige que você esteja relativamente confortável com o modelo de evento maluco.
fonte
e
argumento é gerado automaticamente. Caso contrário, devemos lidar com o IE6-8, que fornece esse objeto útil viawindow.event
.fonte
fonte
Como fazer isso sem JavaScript embutido
geralmente é recomendável evitar o JavaScript embutido, mas raramente existe um exemplo de como fazê-lo.
Aqui está a minha maneira de anexar eventos aos botões.
Não estou totalmente satisfeito com quanto tempo o método recomendado é comparado a um
onClick
atributo simples .Apenas navegadores 2014
Apenas navegadores 2013
Cross-browser
Navegador cruzado com jQuery
Você pode executar isso antes que o documento esteja pronto. Clicar nos botões funcionará porque anexamos o evento ao documento.
Aqui está um jsfiddle
Por algum motivo estranho, a
insertHTML
função não funciona nela, mesmo que funcione em todos os meus navegadores.Você sempre pode substituir
insertHTML
pordocument.write
se não se importa com as desvantagensFontes:
fonte
Se você não deseja passar nenhum argumento para a função onclick, use
event.target
para obter o elemento clicado:fonte
Com o javascript puro, você pode fazer o seguinte:
verificá-lo em JsFiddle
fonte
Você pode simplesmente fazê-lo desta maneira:
fonte
id=obj;
e apenas sealert(obj);
fonte
fonte
Botão 1 Botão 2 Botão 3
fonte
Desculpe, é uma resposta tardia, mas é muito rápida se você fizer isso: -
Isso obtém o ID de qualquer botão clicado.
Se você deseja obter apenas o valor do botão clicado em um determinado local, basta colocá-lo em um recipiente como
e altere o código para: -
Eu espero que isso ajude
fonte
Isso registrará o ID do elemento que foi clicado: addFields.
fonte