2011-11-18 11 views
10

Estoy creando dinámicamente algunos elementos <div> y luego llenando sus propiedades innerHTML con texto. Estoy tratando de establecer sus onclick controladores de eventos como éste:Javascript: estableciendo onclick dinámicamente y pasando el elemento en sí

myDiv.onclick = function() { alert("Hello!") }; 

que puedo hacer. Lo que me gustaría hacer es poder acceder al valor/innerHTML (nuevo en Javascript y DOM, entonces no estoy seguro de qué término es lo que estoy buscando) dentro de la función onclick recientemente definida. ¿Cómo podría acceder a los datos de myDiv dentro de la función que se define para su propiedad onclick? myDiv habrá algo tan simple como:

<div>StackOverflow</div> 

Cualquier ayuda sería muy apreciada!

+1

"Contenido" es el término correcto, creo. –

Respuesta

15

El controlador onclick se ejecuta en el contexto del elemento.

myDiv.onclick = function() { alert(this.innerHTML); }; 
+0

Doh! Esto debe haber sido lo único que no probé. ¡Muchas gracias! –

4

Dentro del controlador, this se referirá al elemento.

myDiv.onclick = function() { alert(this.innerHTML) }; 

Tadaaa :).

+1

¡Gracias! Jan respondió primero pero tiene un voto positivo. :) –

0

Creo que lo que está buscando es decir:

Personalmente me alejaría de innerText (debido a problemas con el navegador) y el uso de innerHTML como regla

+0

¡Gracias por el consejo! –

Cuestiones relacionadas