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

Get jquery `$ (this)` id

Как я могу получить id элемента, который вызвал функцию jQuery .change()? Сама функция работает правильно, но мне нужно определенное действие для селектора с id="next".

$("select").change(function() {
    [...snip....]
    alert( $(this).attr('id') );  // <---- not working
}

Любые идеи, почему предупреждение выше не работает?

4b9b3361

Ответ 1

this - это элемент DOM, на котором было зацепилось событие. this.id - его идентификатор. Не нужно обертывать его в экземпляр jQuery, чтобы получить его, свойство id отражает атрибут надежно во всех браузерах.

$("select").change(function() {    
    alert("Changed: " + this.id);
}

Живой пример

Вы не делаете этого в своем примере кода, но если вы просматриваете контейнер с несколькими элементами формы, это даст вам идентификатор контейнера. Если вам нужен идентификатор элемента, вызвавшего событие, вы можете получить это из свойства event объекта target:

$("#container").change(function(event) {
    alert("Field " + event.target.id + " changed");
});

Живой пример

(jQuery гарантирует, что пузырь событий change, даже в IE, где он не изначально.)

Ответ 2

Вы имеете в виду, что для элемента select с идентификатором "next" вам нужно выполнить некоторые конкретные script?

$("#next").change(function(){
    //enter code here
});