Есть ли способ получить идентификатор элемента, который инициирует событие?
Я думаю что-то вроде:
$(document).ready(function() {
$("a").click(function() {
var test = caller.id;
alert(test.val());
});
});
<script type="text/javascript" src="starterkit/jquery.js"></script>
<form class="item" id="aaa">
<input class="title"></input>
</form>
<form class="item" id="bbb">
<input class="title"></input>
</form>
За исключением, конечно, что переменная test
должна содержать идентификатор "aaa"
, если событие вызывается из первой формы, и "bbb"
если событие вызывается из второй формы.
javascript
jquery
Joda
источник
источник
event.target.id
в обработчике событий, чтобы получить идентификатор элемента, который вызвал событие.Ответы:
В jQuery
event.target
всегда ссылается на элемент, вызвавший событие, гдеevent
находится параметр, переданный функции. http://api.jquery.com/category/events/event-object/Также обратите внимание, что
this
это также будет работать, но это не объект jQuery, поэтому, если вы хотите использовать функцию jQuery, вы должны ссылаться на него$(this)
, например:источник
$(event.target)
если вам нужен метод JQuery, например,$(event.target).attr("organisation:thingy");
.Для справки попробуйте это! Оно работает!
источник
$(this).attr("id");
делает.e.target
дочерними элементами, вы получите точный элемент, вызвавший событие, даже если оно было дочерним, тогда какthis
вам будет предоставлен элемент, к которому прикреплено событие.Хотя это упоминается в других постах, я хотел бы изложить это:
$(event.target).id
не определено$(event.target)[0].id
дает атрибут id.event.target.id
также дает атрибут id.this.id
дает атрибут id.а также
$(this).id
не определеноРазличия, конечно, между объектами jQuery и объектами DOM. «id» - это свойство DOM, поэтому вы должны быть в объекте элемента DOM, чтобы использовать его.
(Это споткнуло меня, так что, вероятно, споткнуло кого-то еще)
источник
event.target.id
ничего не дает!$(event.target).attr('selector');
работал отлично для меня.Для всех событий, не ограничиваясь только JQuery вы можете использовать
Где
event.target
терпит неудачу, это возвращаетсяevent.srcElement
к IE. Для пояснения приведенного выше кода не требуется jQuery, но также работает с jQuery.источник
Вы можете использовать
(this)
для ссылки на объект, который вызвал функцию.'this'
является элементом DOM, когда вы находитесь внутри функции обратного вызова (в контексте jQuery), например, вызывается методами click, each, bind и т. д.Здесь вы можете узнать больше: http://remysharp.com/2007/04/12/jquerys-this-demysified/
источник
$(html).click()
(this), вернет объект html, а не элемент, поЯ динамически генерирую таблицу из базы данных, получаю данные в формате JSON и помещаю их в таблицу. Каждая строка таблицы имеет уникальный
ID
, который необходим для дальнейших действий, поэтому, если DOM изменяется, вам нужен другой подход:источник
Элемент, который сработал событие у нас есть в свойстве события
Мы получаем объект узла DOM, на который был установлен обработчик события.
Самый вложенный узел, который начал процесс барботирования, который мы имеем в
Объект события всегда является первым атрибутом обработчика события, например:
Подробнее о делегировании мероприятия вы можете прочитать в http://maciejsikora.com/standard-events-vs-event-delegation/
источник
Исходный элемент как объект jQuery должен быть получен через
Это дает вам источник щелчка, а не элемент, которому была назначена функция щелчка. Может быть полезно, когда событие click находится в родительском объекте EG.a событие click в строке таблицы, и вам нужна ячейка, по которой щелкнули
источник
Вы можете попробовать использовать:
источник
это работает с большинством типов элементов:
источник
В случае делегированных обработчиков событий, где у вас может быть что-то вроде этого:
и ваш код JS так:
Вы, скорее всего, обнаружите, что itemId есть
undefined
, поскольку содержимое LI обернуто в a<span>
, что означает, что<span>
, вероятно, будет целью события. Вы можете обойти это с небольшой проверкой, например, так:Или, если вы предпочитаете максимизировать удобочитаемость (а также избежать ненужного повторения вызовов JQuery):
При использовании делегирования события
.is()
метод имеет неоценимое значение для проверки того, что ваша цель события (помимо всего прочего) - это именно то, что вам нужно. Используйте.closest(selector)
для поиска по дереву DOM и используйте.find(selector)
(обычно в сочетании с.first()
, как в.find(selector).first()
) для поиска по нему. Вам не нужно использовать.first()
при использовании.closest()
, так как он возвращает только первый соответствующий элемент-предок, а.find()
возвращает все соответствующие потомки.источник
Использовать можно Использовать .on событие
источник
Это работает на высшем
z-index
чем в ответах выше:Таким образом, вы всегда получите элемент
id
(в этом примереli
). Также при нажатии на дочерний элемент родительского элемента.источник
Работаю JSFiddle здесь .
источник
Просто используйте
this
ссылкуили
источник
id
из элемента, наclick()
который был назначен. Если вам нужно передать больше данных этому методу, вам нужно,data-some-id="<?php $someId; ?>"
а затем вы можете `$ (this) .data (" some-id ") получить его.this.element.attr("id")
отлично работает в IE8.источник
Обе эти работы,
а также
источник
источник
Вы можете использовать функцию, чтобы получить идентификатор и значение для измененного элемента (в моем примере я использовал тег Select.
источник
Я работаю с
Я пытался найти,
event
как описано выше, но когда срабатывает функция запроса, она кажется недоступной. Я использовалthis.element.attr("id")
вместо этого идентификатор элемента, и он, кажется, работает нормально.источник
В случае Angular 7.x вы можете получить нативный элемент и его идентификатор или свойства.
HTML:
источник