2010-05-05 12 views
29

Dieser Code ist für nichts bestimmtes bestimmt. Ich versuche nur, den tagName oder nodeName eines Elements erfolgreich zu erhalten. Wenn ich den folgenden Code ausführe, erhalte ich immer eine Warnung "undefined". Ich frage mich, ob es ist, weil diese Funktion ausgeführt wird, wenn das Dokument fertig ist? Gibt es einen anderen Ort, an dem ich das tun sollte? Oder ist es wahrscheinlich mein anderer Javascript-Code, der irgendwie widerspricht (würde ich bezweifeln).jquery nodename returning undefined

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

Antwort

50

Sie versuchen, ein nicht-Mitglied des jQuery Objekt zuzugreifen. Verwenden eines dieser DOM-Element Accessoren diese Eigenschaften erhalten:

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

OR

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

OR

document.getElementById('last').nodeName

+3

Ich glaube nicht, das funktioniert nicht mehr und hat abgeschrieben. Steven's Antwort funktionierte gut: .prop ("nodeName")) – newUserNameHere

+1

Zwei Kommentare für @newUserNameHere: (1) Die Antwort funktioniert und die verwendeten Funktionen sind nicht veraltet. (2) Beachten Sie den Unterschied zwischen "deprecated" (korrekt) und "depreciated" (falsch), wie in [dieser anderen Stack Exchange-Frage] (http://english.stackexchange.com/q/45295) erläutert. –

56

Verwenden Sie die prop() von jQuery:

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