Подтвердить что ты не робот

Jquery $(this).id return Undefined

У меня есть два переключателя asp на странице, которые помещаются в updatepanel. Я написал событие click для них с jQuery следующим образом:

$(document).ready(function () {
    $(".inputs").click(function () {
         alert($(this).id);
    });
});

Но он возвращает Undefined. В чем проблема?

EDIT:

        alert(" or " + $(this).attr("id"));
alert(this.id);

Эти две строки возвращают null!

4b9b3361

Ответ 1

Другой вариант (именно так вы его видели):

$(function () {
    $(".inputs").click(function (e) {
         alert(e.target.id);
    });
});

НТН.

Ответ 2

$(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 каждого вложенного (дать им все уникальные имена) для ссылки на элементы в более высоких или более низких областях.

Ответ 3

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

    });

});

Ответ 4

$(this) - это объект jQuery, который обертывает элемент DOM this, а объекты jQuery не имеют свойств id. Вероятно, вам нужно просто this.id получить атрибут id для элемента с щелчком.

Ответ 5

используйте этот actiion

$(document).ready(function () {
var a = this.id;

alert (a);
});

Ответ 6

это: элемент DOM $ (this): Jquery objct, который завернут с Dom Element, вы также можете проверить этот ответ this vs $(this)

попробуйте Attr(). Получите значение атрибута для первого элемента в наборе согласованных элементов.

$(document).ready(function () {
    $(".inputs").click(function () {
         alert(" or " + $(this).attr("id"));

    });
});