Javascript removeChild&。这孩子不工作
我正在尝试使用一个非常简单的Javascript函数,使用.removeChild和.appendChild将一个图像更改为另一个图像。我的代码如下:Javascript removeChild&。这孩子不工作,javascript,onload,appendchild,removechild,Javascript,Onload,Appendchild,Removechild,我正在尝试使用一个非常简单的Javascript函数,使用.removeChild和.appendChild将一个图像更改为另一个图像。我的代码如下: <html> <head> <script type="text/javascript" language="javascript"> function bannerload(){ var banner = new Image(); banner.src = "IMG/banner.gif"; var
<html>
<head>
<script type="text/javascript" language="javascript">
function bannerload(){
var banner = new Image();
banner.src = "IMG/banner.gif";
var loading = new Image();
loading.src = "IMG/loading.gif";
var bannerElement = document.getElementById("BANNER");
bannerElement.removeChild(banner);
bannerElement.appendChild(loading);
}
</script>
</head>
<body onload="bannerload()">
<div id="BANNER">
<img src="IMG/banner.gif" alt="Banner" />
</div>
</body>
</html>
函数bannerload(){
var banner=新图像();
banner.src=“IMG/banner.gif”;
var加载=新图像();
load.src=“IMG/load.gif”;
var bannerelation=document.getElementById(“BANNER”);
bannerelation.removeChild(banner);
bannerelation.appendChild(加载);
}
但是,它不起作用。页面仅加载banner.gif,而此图像从未更改为loading.gif。我不明白为什么,请帮忙
谢谢 这不起作用的原因是您试图添加一个子项并删除一个非子项的子项 您正试图从名为BANNER的元素中删除名为BANNER的子元素 显然,名为BANNER的元素没有名为BANNER的子元素。您有两种选择:将id赋予子元素并调用`banner.parent.removeChild(banner)或以下选项: 示例鹬
var bannerElement = document.getElementById("BANNER");
//Banner only has one child.
var child = bannerElement.children[0];
bannerElement.removeChild(child);
bannerElement.appendChild(loading);
我想你的问题是你想把一个不存在的孩子带走
var banner = new Image();
banner.src = "IMG/banner.gif";
...
bannerElement.removeChild(banner);
看看你是如何制作一个新的图像,然后删除它,即使你还没有附加它?我想你应该试试这样的东西:
var banner = document.getElementById('id_banner')
banner.src = 'IMG/banner.gif' // or 'IMG/loading.gif' depending on which one you want
...
<body onload="bannerload()">
<div id="BANNER">
<img id="id_banner" src="IMG/banner.gif" alt="Banner" />
...
var banner=document.getElementById('id\u banner'))
banner.src='IMG/banner.gif'//或'IMG/loading.gif',具体取决于所需的选项
...
...
是否有理由不将现有img的src更改为“加载”src?您可以使用replaceChild
-少调用一次函数。:-)@RobG我已经很久没有这样做了。我只是想对他的代码做一点小小的修改。如果你愿意的话,你可以自己给个答案,我会投票,或者我可以把这个换成同样的答案?