您可以通过在其上执行事件来定位特定的DOM元素吗?

时间:2017-09-22 02:12:14

标签: javascript

我希望像使用getElementById()那样定位DOM中的元素,但只需点击它即可。例如,我想将以下div从红色变为绿色(下面是标准方式):

function changeColor(element, value)
{
    document.getElementById(element).style.background = value;
}

<div id="square"  style="height: 100px; width: 100px; 
background:red;" onClick="changeColor('square', 'green');"></div>

...但我想做这样的事情:

function changeColor(THIS, value)
{
    THIS('element receiving the click').style.background = value;
}

有人知道这是否可行?

1 个答案:

答案 0 :(得分:2)

在您的代码中,您可以使用document.getElementById

function changeColor(id, value) {
    document.getElementById(id).style.backgroundColor = value;
}

但更好的方法是在函数调用中使用this,因为它会自动设置为单击的元素。

onclick="changeColor(this, 'green')"

然后该函数将接收元素作为参数:

function changeColor(element, value) {
    element.style.backgroundColor = value;
}