JQuery - определение того, какой элемент $ (this) является

Возможное дублирование:
Может ли jQuery предоставить имя тега?

Hi!

Этот вопрос настолько прост, что мне стыдно спрашивать, но я пытался найти ответ в течение 30 минут, но безрезультатно.

Как узнать, какой элемент был выбран в приведенном ниже коде.

$('*').click(function (event) {
 var this_element = $(this).???;
 return false;
})

Я ищу, чтобы для переменной this_element было установлено значение 'a', если это ссылка, 'p', если это абзац 'div', если ...

Спасибо!


person Marreone    schedule 25.02.2010    source источник
comment
comment
кстати, должен включать event.stopPropagation();, чтобы ваш клик не передавался родительским элементам без уважительной причины. см. документацию по API: api.jquery.com/get   -  person ghoppe    schedule 25.02.2010
comment
@ghoppe - return false; в обработчиках событий jQuery .stopPropagation() и .preventDefault()   -  person gnarf    schedule 25.02.2010
comment
ах, не понял! Спасибо @gnarf.   -  person ghoppe    schedule 25.02.2010


Ответы (2)


Попробуй это:

$('*').click(function (event) {
    var this_element = this.tagName.toLowerCase();
    return false;
});

Указатель this относится к действительному элементу, над которым выполняются действия. Как часть ядра DOM уровня 2, все элементы DOM имеют свойство, называемое .tagName .

person Xavi    schedule 25.02.2010
comment
Убедитесь, что .toLowerCase() в некоторых браузерах реализованы все заглавные буквы для .tagName, а в других - нет. - person gnarf; 25.02.2010
comment
Это действительно зависит от того, что вы делаете с именем тега. Это может не иметь значения. Но, честно говоря, я внесу изменения. - person Xavi; 25.02.2010

person    schedule
comment
гм, -1 за что? это работает: jsbin.com/akohe/edit - person ghoppe; 25.02.2010
comment
донно, но это несколько избыточно - $(this).get(0) всегда должно быть равно this. - person Shog9; 25.02.2010
comment
верно только в этом конкретном случае (нажатие на элемент). $ (this) может содержать более одного элемента DOM… - person ghoppe; 25.02.2010
comment
Ну, конечно ... Если this оказался строкой селектора, или массивом элементов, или чем-то в этом роде. Но это не имеет отношения к этому вопросу. - person Shog9; 25.02.2010
comment
Я просто получаю неопределенные значения, когда использую это - person HorusKol; 30.09.2013