如何使用事件对象使用Javascript更改HTML文本
我不明白为什么e.target.name显示未定义,即使e.target返回节点。如何使用事件对象简单地更改文本如何使用事件对象使用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){
日志(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类,它有publicid
和className
属性,但是name
是私有的,为了得到它,你应该调用instance方法。感谢这个解决方案。我仍然有点困惑,为什么e.target.someAttribute在我的网页中连接到img标签时工作正常,但当它来自p标签时却不正常。非常奇怪,这取决于您所谈论的属性,例如Id
和className
可以工作,但是name
不行。把e.target
想象成一个js类,它有publicid
和className
属性,但是name
是私有的,为了得到它,你应该调用instance方法。
function changeText(e) {
console.log(e.target.getAttribute('name'));
switch (e.target.getAttribute('name')) {
case 'fooBar':
e.target.innerHTML = 'bar';
break;
}
}