2010-05-05 4 views
29

Этот код не предназначен ни для чего, в частности. Я просто пытаюсь успешно получить tagName или nodeName элемента. Однако, когда я запускаю следующий код, я всегда получаю предупреждение с сообщением «undefined». Мне интересно, это потому, что эта функция выполняется, когда документ готов? Есть ли другое место, где я должен это делать? Или это, вероятно, мой другой код javascript как-то противоречит (я бы сомневался).jquery nodename return undefined

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

ответ

50

Вы пытаетесь получить доступ к нечлену объекта jQuery. Используйте один из этих элементов DOM аксессорах, чтобы получить эти свойства:

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

ИЛИ

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

ИЛИ

document.getElementById('last').nodeName

+3

Я не думаю, что это работает больше и самортизированы. Ответ Стивена работал нормально: .prop ("nodeName")) – newUserNameHere

+1

Два комментария для @newUserNameHere: (1) Ответ действительно работает, а используемые функции не устарели. (2) Обратите внимание на разницу между «устаревшими» (правильными) и «обесцененными» (неверными), как описано в [этом другом вопросе об оплате стека] (http://english.stackexchange.com/q/45295). –

56

Используйте prop() из JQuery:

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