2011-05-31 13 views
6

Estoy usando javascript para obtener el ID del elemento sobre el mouse. Pero no estoy recibiendo .. según mi código que está mostrando nula ..Identificación del elemento en el mouse sobre

mi código es:

function getid() { 
      var e = document.getElementById(this); 
      alert(e); 
     } 

y estoy llamando a la función en:

<input type="image" id="img" 
         style="margin: 8px 4px 4px 4px; width:142px; height:117px;" src="images2.jpg" onmouseover="getid();" onmouseout="outmouse();" /> 

Cómo ¿Puedo obtener la identificación de los elementos sobre el mouse?

Respuesta

13

cheque este

<script> 
function getid(obj) { 
      alert(obj.id); 
     } 
</script> 


<input type="image" id="img" 
         style="margin: 8px 4px 4px 4px; width:142px; height:117px;" src="images2.jpg" onmouseover="getid(this);" onmouseout="outmouse(this);" /> 
2

En jQuery:

$(input).mouseover(function() 
{ 
    var showID = $(this).attr("ID"); 
    alert(showID); 
}); 
6

El valor de evento intrínseco atributos es el cuerpo de la función . Lo que tienes es lo mismo que:

onmouseover = function() { 
    getid(); 
} 

Cuando se llama a una función sin un objeto, es el mismo que window.thefunction(). Entonces está llamando al window.getid() para que this (dentro de la función getid) sea el objeto ventana.

Si realmente desea utilizar atributos de eventos intrínsecos (sugerencia: don't), debe ser explícito sobre qué es this.

onmouseover="getid.call(this)" 

Sin embargo, a continuación:

var e = document.getElementById(this); 

... no tiene sentido porque es el elemento this y no Identificación del elemento.

usted podría conseguir la propiedad id de this, y usar eso para buscar el elemento, pero eso sería tonto como puede simplemente:

var e = this; 
+0

+1 gran respuesta! – Craig

Cuestiones relacionadas