¿Cómo encontrar la identificación del botón en el que se hace clic?
<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
fuente
fuente
Respuestas:
Debe enviar la ID como los parámetros de la función. Hazlo asi:
Esto enviará el ID
this.id
comoclicked_id
el que se puede utilizar en su función. Véalo en acción aquí.fuente
event.target.id
(para mí, tanto Firefox como IE lo estaban lanzando), esta es una gran solución que funciona en los tres principales navegadores.En general, las cosas son más fáciles de mantener organizadas si separas tu código y tu marcado. Defina todos sus elementos y luego, en su sección de JavaScript, defina las diversas acciones que deben realizarse en esos elementos.
Cuando se llama a un controlador de eventos, se llama dentro del contexto del elemento en el que se hizo clic. Entonces, el identificador esto se referirá al elemento DOM en el que hizo clic. Luego puede acceder a los atributos del elemento a través de ese identificador.
Por ejemplo:
fuente
USO DE JAVASCRIPT PURO: Sé que es tarde, pero puede ser para las futuras personas a las que puede ayudar:
En la parte HTML:
En el controlador Javascipt:
De esta manera, no tenemos que vincular el 'id' del Elemento al momento de llamar a la función javascript.
fuente
this
como parámetro enonClick
( en realidad, no usando onClick sino onChange, ¿ese es quizás el problema?). También he revisado un poco y parece haber mucha confusión sobre estaevent
variable: ¿es un parámetro "implícito" o tiene que expresarse explícitamente como argumento (es decirfunction reply_click(event)
, lo que también he visto en algunos lugares)? ¿Solo está disponible al asignar el detector de eventos a través deaddEventListener
...? He jugado un poco, pero no pude hacerlo funcionar.(Creo que el
id
atributo debe comenzar con una letra. Podría estar equivocado).Podrías ir para la delegación del evento ...
... pero eso requiere que te sientas relativamente cómodo con el loco modelo de evento.
fuente
e
argumento se genera automáticamente. Si no es así, entonces debemos tratar con IE6-8, que en su lugar proporciona ese objeto útil a través dewindow.event
.fuente
fuente
Cómo hacerlo sin JavaScript en línea
generalmente se recomienda evitar JavaScript en línea, pero rara vez hay un ejemplo de cómo hacerlo.
Aquí está mi forma de adjuntar eventos a los botones.
No estoy completamente satisfecho con cuánto tiempo más se compara el método recomendado con un
onClick
atributo simple .Solo navegadores 2014
Solo navegadores 2013
Navegador cruzado
Cross-browser con jQuery
Puede ejecutar esto antes de que el documento esté listo, hacer clic en los botones funcionará porque adjuntamos el evento al documento.
Aquí hay un jsfiddle
Por alguna extraña razón, la
insertHTML
función no funciona a pesar de que funciona en todos mis navegadores.Puede reemplazar siempre
insertHTML
condocument.write
si no me importa de inconvenientesFuentes:
fuente
Si no desea pasar ningún argumento a la función onclick, solo use
event.target
para obtener el elemento cliqueado:fuente
Con javascript puro puedes hacer lo siguiente:
compruébalo en JsFiddle
fuente
Simplemente puede hacerlo de esta manera:
fuente
id=obj;
y simplemente teneralert(obj);
fuente
fuente
Botón 1 Botón 2 Botón 3
fuente
Lo siento, es una respuesta tardía, pero es muy rápido si haces esto: -
Esto obtiene la identificación de cualquier botón que se haga clic.
Si solo desea obtener el valor del botón en un lugar determinado, simplemente colóquelos en un contenedor como
y cambie el código a: -
espero que esto ayude
fuente
Esto registrará la identificación del elemento en el que se ha hecho clic: addFields.
fuente