Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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更改HTML文本_Javascript_Html - Fatal编程技术网

如何使用事件对象使用Javascript更改HTML文本

如何使用事件对象使用Javascript更改HTML文本,javascript,html,Javascript,Html,我不明白为什么e.target.name显示未定义,即使e.target返回节点。如何使用事件对象简单地更改文本 函数更改文本(e){ 日志(e.target,e.target.name); 开关(如target.name){ 案例“fooBar”: e、 target.innerHTML='bar'; 打破 } } foo e、 目标是一个html节点,因此必须使用DOM api来获取属性 e、 目标是一个html节点,因此您必须使用DOM api来获取属性HTMLParagraphEl

我不明白为什么e.target.name显示未定义,即使e.target返回节点。如何使用事件对象简单地更改文本

函数更改文本(e){
日志(e.target,e.target.name);
开关(如target.name){
案例“fooBar”:
e、 target.innerHTML='bar';
打破
}
}

foo

e、 目标是一个html节点,因此必须使用DOM api来获取属性


e、 目标是一个html节点,因此您必须使用DOM api来获取属性

HTMLParagraphElement
没有
名称
属性。另外,
name
属性对于
元素无效。改用
data name=“fooBar”
并使用
event.target.dataset.name
访问它
HTMLParagraphElement
没有
name
属性。另外,
name
属性对于
元素无效。改用
data name=“fooBar”
并使用
event.target.dataset.name
访问它。感谢您提供此解决方案。我仍然有点困惑,为什么e.target.someAttribute在我的网页中连接到img标签时工作正常,但当它来自p标签时却不正常。非常奇怪,这取决于您所谈论的属性,例如
Id
className
可以工作,但是
name
不行。把
e.target
想象成一个js类,它有public
id
className
属性,但是
name
是私有的,为了得到它,你应该调用instance方法。感谢这个解决方案。我仍然有点困惑,为什么e.target.someAttribute在我的网页中连接到img标签时工作正常,但当它来自p标签时却不正常。非常奇怪,这取决于您所谈论的属性,例如
Id
className
可以工作,但是
name
不行。把
e.target
想象成一个js类,它有public
id
className
属性,但是
name
是私有的,为了得到它,你应该调用instance方法。
function changeText(e) {
    console.log(e.target.getAttribute('name'));
    switch (e.target.getAttribute('name')) {
    case 'fooBar':
        e.target.innerHTML = 'bar';
        break;
    }
}