【发布时间】:2022-01-17 04:39:54
【问题描述】:
我有以下代码,其中我有一个带有data 属性的按钮和其中的div,我想获取按钮的数据集,无论孩子内部的目标有多深。
export default function App() {
const handler = (e) => {
console.log(e.target.dataset.id);
};
return (
<div className="App">
<button
data-id="myDataId"
onClick={handler}
style={{
height: 200,
width: 200,
backgroundColor: "green"
}}
>
Bruh
<div
style={{
height: 100,
width: 100,
backgroundColor: "red"
}}
/>
</button>
</div>
);
}
在这个例子中,当我点击 div 内部时,我的控制台给出了 undefined,但如果我点击到按钮,它会给出我的 data 属性。
我尝试使用event.path,但没有给出任何结果。
有什么通用方法可以获取我的按钮的数据集吗?
这是完整的示例:https://codesandbox.io/s/lucid-breeze-e1lh2?file=/src/App.js:23-535
【问题讨论】:
-
您可能需要两个不同的点击处理程序。一个用于父元素,另一个用于子元素。在子处理程序中,您可以使用它来获取父级的数据属性 -
e.target.parentNode.dataset.id -
嗯,还有其他通用的方法吗?
-
点击按钮时我没有得到你需要控制台的问题?
-
@SachinYadav 不,我需要控制台
data-id的内容,在这种情况下它是“aaaaaa”:D -
让我改成正常的名字
标签: javascript html reactjs dataset