javascript动态创建图层,为什么使用循环遍历之后div层中只显示最后一个图片?求教~

MnZlZ 2014-10-04 03:27:44
<html>
<head>
<title></title>
<style type="text/css">
.divStyle
{
position:absolute;
top:window.event.clientY;
left:window.event.clientX;
height:150px;
width:600px;
border-style:solid;
border-width:thin;
border-color:Blue;
}
</style>
<script type="text/javascript">
function backGround() {
var Date = { "images/001small.jpg": "['images/001medium.jpg','images/001.jpg']", "images/002small.gif": "['images/002medium.jpg','images/002.gif']", "images/003small.jpg": "['images/003medium.jpg','images/003.jpg']" };
var divImg = document.createElement("div");
// var img = document.createElement("img");
divImg.className = "divStyle";
for (var key in Date) {
divImg.innerHTML = "<img src="+key+" />";//问题就出现在这里了
}
document.body.appendChild(divImg);
}
</script>
</head>
<body>
<a href="javascript:backGround()">背景</a>
</body>
</html>
...全文
322 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
save4me 2014-10-05
  • 打赏
  • 举报
回复

.divStyle 
{
    position:absolute;
    height:150px;
    width:600px;
    border-style:solid;
    border-width:thin;
    border-color:Blue;
}

function backGround() {
    var Date = { "images/001small.jpg": "['images/001medium.jpg','images/001.jpg']", "images/002small.gif": "['images/002medium.jpg','images/002.gif']", "images/003small.jpg": "['images/003medium.jpg','images/003.jpg']" };
    var divImg = '<div class="divStyle">';
    for (var key in Date) {
        divImg += '<img src="'+ key +'" />';
    }
    divImg += '</div>';
    document.body.innerHTML += divImg;
}

<a href="javascript:backGround()">背景</a>
引用 2 楼 u013104499 的回复:
谢谢啊,我试了一下,比之前好多了,但是三张图片为什么是叠加到一起的?
Hello World, 2014-10-05
  • 打赏
  • 举报
回复
引用 2 楼 u013104499 的回复:
谢谢啊,我试了一下,比之前好多了,但是三张图片为什么是叠加到一起的?
CSS里面设置的坐标都是一样的,当然重叠在一起了
MnZlZ 2014-10-05
  • 打赏
  • 举报
回复
引用 4 楼 save4me 的回复:

function backGround() {
    var Date = { "images/001small.jpg": "['images/001medium.jpg','images/001.jpg']", "images/002small.gif": "['images/002medium.jpg','images/002.gif']", "images/003small.jpg": "['images/003medium.jpg','images/003.jpg']" };
    var divImg = '<div class="divStyle">';
    for (var key in Date) {
        divImg += '<img src="'+ key +'" />';
    }
    divImg += '</div>';
    document.body.innerHTML += divImg;
}

<a href="javascript:backGround()">背景</a>
引用 2 楼 u013104499 的回复:
谢谢啊,我试了一下,比之前好多了,但是三张图片为什么是叠加到一起的?
这段代码显得更加简练了,受教了,谢了啊
MnZlZ 2014-10-05
  • 打赏
  • 举报
回复
引用 3 楼 apollokk 的回复:
[quote=引用 2 楼 u013104499 的回复:] 谢谢啊,我试了一下,比之前好多了,但是三张图片为什么是叠加到一起的?
CSS里面设置的坐标都是一样的,当然重叠在一起了[/quote] 恩恩,发现了。。。测了好多遍,刚开始学就是不容易
MnZlZ 2014-10-05
  • 打赏
  • 举报
回复
引用 5 楼 KK3K2005 的回复:
[quote=引用 2 楼 u013104499 的回复:] 谢谢啊,我试了一下,比之前好多了,但是三张图片为什么是叠加到一起的?
你希望是什么样子呢? 你每张图片外面的div全用了class= divStyle 最终效果就是 叠加 要横着走 divStyle { position:static; float:left; height:150px; width:600px; border-style:solid; border-width:thin; border-color:Blue; } [/quote] 嗯,还真是这样,最后我在for循环中动态的添加了img,这样就可以了,谢了啊!
KK3K2005 2014-10-05
  • 打赏
  • 举报
回复
引用 2 楼 u013104499 的回复:
谢谢啊,我试了一下,比之前好多了,但是三张图片为什么是叠加到一起的?
你希望是什么样子呢? 你每张图片外面的div全用了class= divStyle 最终效果就是 叠加 要横着走 divStyle { position:static; float:left; height:150px; width:600px; border-style:solid; border-width:thin; border-color:Blue; }
MnZlZ 2014-10-04
  • 打赏
  • 举报
回复
谢谢啊,我试了一下,比之前好多了,但是三张图片为什么是叠加到一起的?
KK3K2005 2014-10-04
  • 打赏
  • 举报
回复
for (var key in Date) { var divImg = document.createElement("div"); // var img = document.createElement("img"); divImg.className = "divStyle"; divImg.innerHTML = "<img src="+key+" />";//问题就出现在这里了 document.body.appendChild(divImg); }

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧