Ответ 1
Другой вариант (именно так вы его видели):
$(function () {
$(".inputs").click(function (e) {
alert(e.target.id);
});
});
НТН.
У меня есть два переключателя asp на странице, которые помещаются в updatepanel
. Я написал событие click для них с jQuery следующим образом:
$(document).ready(function () {
$(".inputs").click(function () {
alert($(this).id);
});
});
Но он возвращает Undefined. В чем проблема?
EDIT:
alert(" or " + $(this).attr("id"));
alert(this.id);
Эти две строки возвращают null
!
Другой вариант (именно так вы его видели):
$(function () {
$(".inputs").click(function (e) {
alert(e.target.id);
});
});
НТН.
$(this)
и this
не совпадают. Первый представляет объект jQuery, обернутый вокруг вашего элемента. Второй - это только ваш элемент. Свойство id
существует в элементе, но не в объекте jQuery. Таким образом, у вас есть несколько вариантов:
Доступ к свойству непосредственно в элементе:
this.id
Доступ к нему из объекта jQuery:
$(this).attr("id")
Извлеките объект из jQuery:
$(this).get(0).id; // Or $(this)[0].id
Получите id
из объекта event
:
Когда события поднимаются, например событие щелчка, они несут важную информацию и ссылки вокруг них. В вашем коде выше у вас есть событие click. Этот объект события имеет ссылку на два элемента: currentTarget
и target
.
Используя target
, вы можете получить id
элемента, который поднял событие. currentTarget
просто скажет вам, какой элемент происходит в данный момент. Это не всегда одно и то же.
$("#button").on("click", function(e){ console.log( e.target.id ) });
Из всего этого наилучшим вариантом является просто получить доступ к нему непосредственно непосредственно из this
, если вы не участвуете в серии вложенных событий, тогда лучше всего использовать объект event
каждого вложенного (дать им все уникальные имена) для ссылки на элементы в более высоких или более низких областях.
Hiya demo http://jsfiddle.net/LYTbc/
это ссылка на элемент DOM, поэтому вы можете напрямую его обернуть.
attr
api: http://api.jquery.com/attr/
Метод .attr() получает значение атрибута только для первого элемента в согласованном наборе.
Хороший, привет!
код
$(document).ready(function () {
$(".inputs").click(function () {
alert(this.id);
alert(" or " + $(this).attr("id"));
});
});
$(this)
- это объект jQuery, который обертывает элемент DOM this
, а объекты jQuery не имеют свойств id
. Вероятно, вам нужно просто this.id
получить атрибут id
для элемента с щелчком.
используйте этот actiion
$(document).ready(function () {
var a = this.id;
alert (a);
});
это: элемент DOM $ (this): Jquery objct, который завернут с Dom Element, вы также можете проверить этот ответ this vs $(this)
попробуйте Attr(). Получите значение атрибута для первого элемента в наборе согласованных элементов.
$(document).ready(function () {
$(".inputs").click(function () {
alert(" or " + $(this).attr("id"));
});
});