Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 事件.target.x on<;i/>;要素_Javascript_Html_Reactjs - Fatal编程技术网

Javascript 事件.target.x on<;i/>;要素

Javascript 事件.target.x on<;i/>;要素,javascript,html,reactjs,Javascript,Html,Reactjs,我有元素和onClick方法: openDocument(event) { const { name } = event.target; console.log('name', name); console.log('target', event.target); } 输出为: 名称未定义 目标 知道为什么name属性是未定义的吗,即使记录目标清楚地显示元素有它?那么解决办法是什么呢?我们有多个文档,具有不同的id、名称,可以在单击时打开,我需要一种方法将该名称传递给端点,以便它知

我有
元素和onClick方法:

openDocument(event) {
  const { name } = event.target;
  console.log('name', name);
  console.log('target', event.target);
}
输出为:

名称未定义

目标

知道为什么name属性是未定义的吗,即使记录目标清楚地显示元素有它?那么解决办法是什么呢?我们有多个文档,具有不同的id、名称,可以在单击时打开,我需要一种方法将该名称传递给端点,以便它知道要返回哪个文档

更新

这里是小提琴链接:

更新


我已经能够从输入元素中获取属性值了。是否只有在这些元素上才有可能?我应该用输入来包装我的文件,还是有其他方法?

如果可以的话,你应该把JS和HTML分开。您可以将事件侦听器附加到
文档
,然后从事件中获取目标:

document.addEventListener('click',myFunction,false);
函数myFunction(事件){
var x=事件目标;
log(x.getAttribute('name'));
}

这是一个按钮
名称
属性不是
标记的有效属性,因此它不能直接从
事件.target
获取,您可以像
事件.target.getAttribute('name')那样获取它

“名称”属性在以下位置可用:

<button>, <form>, <fieldset>, <iframe>, <input>, <keygen>, <object>, <output>, <select>, <textarea>, <map>, <meta>, <param>
查看文档了解更多详细信息


@Andy我想说的是,它不能直接在event.target下使用。“使用React时,通常不需要在DOM元素创建后调用addEventListener将侦听器添加到DOM元素中。相反,只需在元素最初呈现时提供一个侦听器。”ReactJS文档中。那实际上是一个javascriptobject@RobbieMilejczak是的,我才意识到这是用React标记的。