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;
});