Javascript 可以通过对特定的DOM元素执行事件来确定其目标吗?
我希望像使用getElementById()一样将DOM中的元素作为目标,但只需单击它。例如,我想将以下div从红色变为绿色(以下是标准方式):Javascript 可以通过对特定的DOM元素执行事件来确定其目标吗?,javascript,Javascript,我希望像使用getElementById()一样将DOM中的元素作为目标,但只需单击它。例如,我想将以下div从红色变为绿色(以下是标准方式): 有人知道这是否可行吗?在代码中可以使用文档。getElementById: function changeColor(id, value) { document.getElementById(id).style.backgroundColor = value; } 但是更好的方法是在函数调用中使用this,因为它会自动设置为单击的元素 onc
有人知道这是否可行吗?在代码中可以使用
文档。getElementById
:
function changeColor(id, value) {
document.getElementById(id).style.backgroundColor = value;
}
但是更好的方法是在函数调用中使用this
,因为它会自动设置为单击的元素
onclick="changeColor(this, 'green')"
然后函数将接收元素作为参数:
function changeColor(element, value) {
element.style.backgroundColor = value;
}
在代码中,可以使用
文档。getElementById
:
function changeColor(id, value) {
document.getElementById(id).style.backgroundColor = value;
}
但是更好的方法是在函数调用中使用this
,因为它会自动设置为单击的元素
onclick="changeColor(this, 'green')"
然后函数将接收元素作为参数:
function changeColor(element, value) {
element.style.backgroundColor = value;
}
好啊但是,我可以用同样的方法使用事件来影响家长和孩子吗?只是猜测一下:@Argut可能想要一个非常通用的解决方案,比如将事件处理程序添加到body或任何家长,然后捕获
event.target.style
?将JS从HTML中分离出来,并将事件侦听器添加到我问这个问题的原因是,我有一堆包含从数据库获取的博客文章的。每个按钮都有一个“编辑”按钮,我想对其应用“onclick”函数。如果我以id为目标,那么所有这些属性都必须是唯一的。但是,这是不可能的,因为每个按钮都有其各自的post和edit按钮,它们都是作为所获取的DB数据周围的html结构自动生成的,因此它们不会具有唯一的属性。我需要的东西只针对我正在单击的按钮的同级/父级元素。@Axel是否要使用事件委派??Andy yes最好把js和htmlOk分开,但是,我可以用同样的方法使用事件来影响家长和孩子吗?只是猜测一下:@Argut可能想要一个非常通用的解决方案,比如将事件处理程序添加到body或任何家长,然后捕获event.target.style
?将JS从HTML中分离出来,并将事件侦听器添加到我问这个问题的原因是,我有一堆包含从数据库获取的博客文章的。每个按钮都有一个“编辑”按钮,我想对其应用“onclick”函数。如果我以id为目标,那么所有这些属性都必须是唯一的。但是,这是不可能的,因为每个按钮都有其各自的post和edit按钮,它们都是作为所获取的DB数据周围的html结构自动生成的,因此它们不会具有唯一的属性。我需要的东西只针对我正在单击的按钮的同级/父级元素。@Axel是否要使用事件委派??Andy yes最好将js与html分开