Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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 可以通过对特定的DOM元素执行事件来确定其目标吗?_Javascript - Fatal编程技术网

Javascript 可以通过对特定的DOM元素执行事件来确定其目标吗?

Javascript 可以通过对特定的DOM元素执行事件来确定其目标吗?,javascript,Javascript,我希望像使用getElementById()一样将DOM中的元素作为目标,但只需单击它。例如,我想将以下div从红色变为绿色(以下是标准方式): 有人知道这是否可行吗?在代码中可以使用文档。getElementById: function changeColor(id, value) { document.getElementById(id).style.backgroundColor = value; } 但是更好的方法是在函数调用中使用this,因为它会自动设置为单击的元素 onc

我希望像使用getElementById()一样将DOM中的元素作为目标,但只需单击它。例如,我想将以下div从红色变为绿色(以下是标准方式):


有人知道这是否可行吗?

在代码中可以使用
文档。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分开