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标记的。