我希望像使用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;
}
有人知道这是否可行?
答案 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;
}