jquery: получить имя объекта?

Я пытаюсь получить щелкнутое имя объекта через код ниже, но я получаю [объект объекта] только, как я могу получить имя объекта?

<a href="#" class="clickme">click</a>

    $('.clickme').click(function(){
      alert($(this));
      return false;
    });

Я хотел бы получить '.clickme' как имя моего объекта.

спасибо.

EDIT:

спасибо за помощь, ребята. прости, что не ясно выразился.

Я хочу получить имя объекта динамически, когда я превращаю этот jQuery click() в настраиваемую функцию или плагин.

и

<a href="#" class="clickme">click</a>

        $('.clickme').click(function(){
          alert($(this));
          return false;
        });

Я хотел бы получить '.clickme' как имя моего объекта.

и

<a href="#" id="clickme">click</a>

        $('#clickme').click(function(){
          alert($(this));
          return false;
        });

Я хотел бы получить '#clickme' как имя моего объекта.

Итак, вы заметили, что когда-то я хочу получить имя id, но когда-то я хочу получить имя класса в качестве имени объекта.

5 ответов


jQuery имеет внутреннее свойство selector что можно использовать, чтобы найти то, что вы ищете:

$('.clickme').selector == '.clickme';
$('.clickme').find('a').selector == '.clickme a';

однако вы не можете получить доступ к этому в click(function(e){}) так как вы должны повторно использовать this:

$('.clickme').click(function(e){
  alert($(this).selector); // alerts nothing
});

однако при создании функции click вы можете назначить этот элемент переменной и ссылаться на нее в пределах:

var $cm = $('.clickme').click(function(e){
  alert($cm.selector); // alerts '.clickme'
});

это класс. Не имя объекта и, конечно, ничего уникального.

вы можете получить его с помощью this.className или $(this).attr('class').

если вы хотите что-то уникальное, используйте id атрибут и заменить class С id.


Это не отвечает на точный вопрос, но на тот, который я получил, когда я туда попал-так что Вы тоже, возможно ; -)

короткий ответ: используйте "этого.имя" Что же "$(этот).attr ('name')"

пример:

$("*").click(function (event) {
   event.stopPropagation();
   // Display the name of the clicked object
   $(this).after("<span> " + this.name +" clicked! </span>");
   // Change the name for what you want (optional - just to show it's doable)
   this.name = this.name + "X";
});

имя или id?

 $('.clickme').click(function(){
  alert( this.id );  // or $(this).attr('name') if you want the name
  return false;
});

на самом деле это выглядит так, что вы хотите класс (хотя, я не уверен, почему, так как вы использовали класс в качестве селектора).

 $('.clickme').click(function(){
  alert( $(this).attr('class') );
  return false;
});

альтернатива с использованием объекта event

$('.clickme').click(function(e){
  alert($(e.target).attr('class'));
  return false;
});