问题是您指定一个字符串文字而不是变量作为函数的参数,这将导致语法错误。
尝试将您的功能修改为以下内容:
<script>
function changeDiv(id){
document.getElementById(id).style.width="230px";
document.getElementById(id).style.height="162px";
document.getElementById(id).style.top="0px";
}
</script>
现在你可以在调用函数时将任何你想要的 id 传递给函数。
缓存对元素的引用以提高性能:
为了性能,你还可以将元素缓存在一个变量中,这样你就不必在 DOM 中查找 3 次了:
<script>
function changeDiv(id){
var elm = document.getElementById(id);
elm.style.width="230px";
elm.style.height="162px";
elm.style.top="0px";
}
</script>
同时修改多个元素:
要同时修改多个元素,可以使用不同的参数多次调用该函数:
onmouseover="changeDiv('image_1'); changeDiv('image_2');"
或者,您可以更改函数以获取具有元素 ID 的字符串数组。
<script>
function changeDivs(ids){
for(var i = 0, len = ids.length; i < len; i++) {
var elm = document.getElementById(ids[i]);
elm.style.width="230px";
elm.style.height="162px";
elm.style.top="0px";
}
}
</script>
然后你可以这样称呼它:
onmouseover="changeDivs(['image_1', 'image_2'])"