虽然您可以使用全局变量,但您不需要。当您使用 setAttribute/getAttribute 时,您添加了一些在 HTML 中显示为属性的内容。您还需要注意,添加全局变量只是将变量添加到窗口或导航器或文档对象(我不记得是哪个)。
您还可以将其添加到对象本身(即,如果查看 html,则作为不可见的变量,但如果您在调试器中将 html 元素作为对象查看并查看其属性,则可见。)
这里有两种选择。1 以一种会使其在 html 中可见的方式存储替代图像,而另一个则不会。
<!DOCTYPE html>
<html>
<head>
<script>
function byId(e){return document.getElementById(e);}
window.addEventListener('load', mInit, false);
function mInit()
{
var tgt = byId('ImageButton1');
tgt.secondSource = 'images/image2.png';
}
function byId(e){return document.getElementById(e);}
function action()
{
var tgt = byId('ImageButton1');
var tmp = tgt.src;
tgt.src = tgt.secondSource;
tgt.secondSource = tmp;
};
function action2()
{
var tgt = byId('imgBtn1');
var tmp = tgt.src;
tgt.src = tgt.getAttribute('src2');
tgt.setAttribute('src2', tmp);
}
</script>
<style>
</style>
</head>
<body>
<button onClick="action();">click me<img src="images/image1.png" width="16px" id="ImageButton1"></button>
<br>
<button onClick="action2();">click me<img id='imgBtn1' src="images/image1.png" src2='images/image2.png' width="16px"></button>
</body>
</html>