我的react项目中一个应用场景就是在点击一个元素的时候想要获取到这个元素的属性。
代码如下:
renderyear=()=>{
return(
<div>
<div data-value="年初">年初</div>
</div>
);
}
//点击标签的时候触发的函数
TagClick=(e)=>{
console.log("e",e);
console.log("e.target",e.target); //指向返回事件的目标节点(触发该事件的节点)
console.log("e.target.dataset",e.target.dataset);
this.setState({
tagSelect:e.target.dataset.value,
Pickerstatus:false,
});
}
如果想获取到触发元素的属性,需要两步骤:
1需要在触发元素上用“data-”+“属性”的形式定义,如value值写成data-value,calss值写成data-class
2.通过e.target.dataset.属性能够获取属性
![6a35be7360030c95f525c9e938c67195.png](https://img-blog.csdnimg.cn/img_convert/6a35be7360030c95f525c9e938c67195.png)
如上图:
我在方法中分别打印出来了e,e.target,e.target.dataset
e是事件对象,里面包括很多方法
e.target指向返回事件的目标节点(触发该事件的节点)
e.target.dataset返回一个对象,对象中是设置的属性,如果设置的时候不加data,则获取到的对象为空。