Как найти идентификатор кнопки, на которую нажимают?
<button id="1" onClick="reply_click()"></button>
<button id="2" onClick="reply_click()"></button>
<button id="3" onClick="reply_click()"></button>
function reply_click()
{
}
javascript
html
Бен Чен
источник
источник
Ответы:
Вам необходимо отправить идентификатор в качестве параметров функции. Делай это так:
Это будет посылать идентификатор
this.id
вclicked_id
который вы можете использовать в вашей функции. Смотрите это в действии здесь.источник
event.target.id
(для меня это делали и Firefox, и IE), это отличное решение, которое работает во всех трех основных браузерах.В общем, вещи легче поддерживать организованными, если вы разделяете код и разметку. Определите все ваши элементы, а затем в разделе JavaScript определите различные действия, которые должны быть выполнены с этими элементами.
Когда вызывается обработчик события, он вызывается в контексте элемента, по которому щелкнули. Итак, идентификатор это будет ссылаться на элемент DOM, на который вы нажали. Затем вы можете получить доступ к атрибутам элемента через этот идентификатор.
Например:
источник
ИСПОЛЬЗОВАНИЕ ЧИСТОГО JAVASCRIPT: Я знаю, что уже поздно, но, возможно, это поможет будущим людям:
В части HTML:
В контроллере Javascipt:
Таким образом, нам не нужно связывать «id» элемента во время вызова функции javascript.
источник
this
качестве параметраonClick
(на самом деле, не используя onClick, а onChange, разве в этом проблема?). Я также немного проверил, и кажется, что этаevent
переменная часто путается - это «неявный» параметр или его нужно явно указывать в качестве аргумента (то естьfunction reply_click(event)
, который я также видел в некоторые места)? Доступно ли это только при назначении прослушивателя событий черезaddEventListener
...? Я играл, но не мог заставить его работать.(Я думаю, что
id
атрибут должен начинаться с буквы. Может быть неправильно.)Вы могли бы пойти на делегирование событий ...
... но это требует, чтобы вы были относительно комфортны с дурацкой моделью событий.
источник
e
аргумент генерируется автоматически. Если это не так, то мы должны иметь дело с IE6-8, который вместо этого предоставляет этот полезный объект черезwindow.event
.источник
источник
Как это сделать без встроенного JavaScript
как правило, рекомендуется избегать встроенного JavaScript, но редко есть пример того, как это сделать.
Вот мой способ прикрепления событий к кнопкам.
Я не совсем доволен тем, насколько дольше рекомендуемый метод по сравнению с простым
onClick
атрибутом.Только браузеры 2014
Только браузеры 2013
Кросс-браузер
Кросс-браузер с JQuery
Вы можете запустить это до того, как документ будет готов, щелкнув по кнопкам, вы сработаете, потому что мы прикрепляем событие к документу.
Вот jsfiddle
По какой-то странной причине
insertHTML
функция в нем не работает, хотя она работает во всех моих браузерах.Вы всегда можете заменить
insertHTML
на,document.write
если не возражаете, это недостаткиИсточники:
источник
Если вы не хотите передавать какие-либо аргументы в функцию onclick, просто используйте,
event.target
чтобы получить элемент clicked:источник
С чистым JavaScript вы можете сделать следующее:
проверить это на JsFiddle
источник
Вы можете просто сделать это так:
источник
id=obj;
и просто иметьalert(obj);
источник
источник
Кнопка 1 Кнопка 2 Кнопка 3
источник
Извините, это поздний ответ, но очень быстро, если вы сделаете это: -
Получает идентификатор любой нажатой кнопки.
Если вы хотите просто получить значение нажатия кнопки в определенном месте, просто поместите их в контейнер как
и измените код на: -
надеюсь, это поможет
источник
Это будет регистрировать идентификатор элемента, по которому щелкнули: addFields.
источник