2010-05-05 15 views
29

Este código no es para nada en particular. Solo intento obtener el tagName o nodeName de un elemento. Sin embargo, cuando ejecuto el siguiente código, siempre recibo una alerta que dice "indefinido". Me pregunto si es porque esta función se ejecuta cuando el documento está listo. ¿Hay algún lugar diferente en el que debería estar haciendo esto? ¿O es probablemente mi otro código de JavaScript en conflicto de alguna manera (lo dudo).jquery nodename return undefined

$(document).ready(function(){ 
     $('#first').hover(function() { 
      alert($('#last').nodeName); 
     }); 
    }); 

Respuesta

50

Está intentando acceder a un no miembro del objeto jQuery. utiliza uno de estos métodos de acceso elemento DOM para recuperar estas propiedades:

$('#last').get(0).nodeName

O

$('#last')[0].nodeName

O

document.getElementById('last').nodeName

+3

no creo que esto funciona más y se ha depreciado. La respuesta de Steven funcionó bien: .prop ("nodeName")) – newUserNameHere

+1

Dos comentarios para @newUserNameHere: (1) La respuesta funciona y las funciones utilizadas no están en desuso. (2) Tenga en cuenta la diferencia entre "en desuso" (correcto) y "depreciado" (incorrecto), como se explica en [esta otra pregunta sobre el intercambio de pila] (http://english.stackexchange.com/q/45295). –

56

Uso del prop() de jQuery:

alert($('#last').prop("nodeName"));