【发布时间】:2015-06-16 11:23:07
【问题描述】:
我正在尝试根据数组项或对象项的数量附加和设置 div 的背景图像(两者都做同样的事情,所以我想使用其中一个)。但是,当我这样做时,div 被正确地添加到父 div 中,但只有一个图像被添加到所有这些中,只有三个 div 应该具有相同的背景图像,但我看到所有这些都相同.谁能解释一下为什么?
JS
这是使用数组的版本。
var plane_images = ["images/Top.png", "images/ata21.png", "images/ata26.png", "images/Top.png", "images/Top.png"];
for(var img = 0; img < plane_images.length; img++){
$("#menu").append("<div class='schematics'></div>");
$(".schematics").css("background-image", "url(" +plane_images[img] +")");
console.log(plane_images[img]);
}
这是面向对象的版本。
var Plane_Images = {
top: "images/Top.png",
structure: "images/ata21.png",
electrics: "images/ata26.png",
fuel: "images/Top.png",
hydraulics: "images/Top.png"
}
for(var images in Plane_Images){
var image_src = Plane_Images[images];
$("#menu").append("<div class='schematics'></div>");
$(".schematics").css("background-image", "url(" +image_src +")");
console.log(image_src);
}
我应该注意的一点是,每个控制台日志都向我显示正在传递的正确值。
HTML
<body>
<div id="header"></div>
<div id="holder">
<div id="menu"></div>
<div id="plane_image"></div>
<div id="sub_menu"></div>
</div>
<div id="footer"></div>
</body>
【问题讨论】:
-
$(".schematics")选择所有具有.schematics类的 div,而不仅仅是您在上面一行中创建的那个 ;) -
@Andreas 所以我需要在其中添加一个
each(function(){})吗? -
我已将我的评论放在答案中,因为它更具可读性:)
标签: javascript jquery css arrays oop