Angular2 获取被点击的元素id

标签 angular

我有这样的点击事件

 <button (click)="toggle($event)" class="someclass" id="btn1"></button>
 <button (click)="toggle($event)" class="someclass" id="btn2"></button>

我正在我的函数输入参数中捕捉事件,并想找出究竟是什么按钮被点击了。

toggle(event) {

}

但是 event 没有 id 属性。

altKey: false
bubbles: true
button: 0
buttons: 0
cancelBubble: false
cancelable: true
clientX: 1198
clientY: 29
ctrlKey: false
currentTarget: button#hdrbtn_notificaton.mdl-button.mdl-js-button.mdl-js-ripple-effect.mdl-button--icon
defaultPrevented: false
detail: 1
eventPhase: 3
fromElement: null
isTrusted: true
isTrusted: true
layerX: -566
layerY: 5
metaKey: false
movementX: 0
movementY: 0
offsetX: 22
offsetY: 13
pageX: 1198
pageY: 29
path: Array[13]
relatedTarget: null
returnValue: true
screenX: 1797
screenY: 148
shiftKey: false
sourceCapabilities: InputDeviceCapabilities
srcElement: span.mdl-button__ripple-container
target: span.mdl-button__ripple-container
timeStamp: 1458032708743
toElement: span.mdl-button__ripple-container
type: "click"
view: Window
webkitMovementX: 0
webkitMovementY: 0
which: 1
x: 1198
y: 29

如何找到 id

更新: Plunkers 都很好但就我而言,我在本地有:

event.srcElement.attributes.id - 未定义 event.currentTarget.id - 具有值

我正在使用 chrome 最新版本 49.0.2623.87 m

会不会是 Material Design Lite 的东西?因为我正在使用它。

enter image description here

最佳答案

如果您想访问按钮的 id 属性,您可以利用事件的 srcElement 属性:

import {Component} from 'angular2/core';

@Component({
  selector: 'my-app',
  template: `
    <button (click)="onClick($event)" id="test">Click</button>
  `
})
export class AppComponent {
  onClick(event) {
    var target = event.target || event.srcElement || event.currentTarget;
    var idAttr = target.attributes.id;
    var value = idAttr.nodeValue;
  }
}

查看此插件:https://plnkr.co/edit/QGdou4?p=preview .

看到这个问题:

关于Angular2 获取被点击的元素id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36006894/

相关文章:

jquery - Angular JS 2 - Bootstrap 导航栏下拉菜单不起作用

css - 如何更改垫选择占位符颜色?

javascript - 如何在 Angular 2 中使用自定义 http 刷新访问 token ?

动态添加二级子级时,Angular2 @ViewChildren/@ViewQuery 的 QueryList 未更新

html - 解释使用 dart Angular 2 Material 中的 Material 扩展面板设置字段的正确语法

google-app-engine - 将 Angular 2(快速入门应用)部署到 Google Cloud 平台

angular - 如何在 Ionic Page 中定义可选的段参数?

arrays - 如何在 Angular 4 或 5 中按数组分组?

angular - 在 Ionic 2 中使用自定义数据组件

angular - catch 类型订阅中不存在