将图像中的属性添加到javascript数组并显示
我需要将此div中的图像的属性添加到JS数组中,并使用以下图像运行超级大小:将图像中的属性添加到javascript数组并显示,javascript,jquery,html,supersized,Javascript,Jquery,Html,Supersized,我需要将此div中的图像的属性添加到JS数组中,并使用以下图像运行超级大小: <div id="dgaslides"> <img src="img/temp/topimg01.jpg" title="Image 1"> <img src="img/temp/topimg02.jpg" title="Image 2"> <img src="img/temp/topimg0
<div id="dgaslides">
<img src="img/temp/topimg01.jpg" title="Image 1">
<img src="img/temp/topimg02.jpg" title="Image 2">
<img src="img/temp/topimg03.jpg" title="Image 3">
</div>
它确实有效,因为我在输出中得到了3张图片,但是链接(src)是“未定义的”,标题也不存在
硬编码的正确方法是:
var dgaslides = [ // Slideshow Images
{image : 'img/temp/topimg01.jpg', title : 'Reception'},
{image : 'img/temp/topimg02.jpg', title : 'Reception 2 og noget mere tekst her'},
{image : 'img/temp/topimg03.jpg', title : 'Reception 3'}
];
有人能帮我找出我做错了什么吗?我想你需要传递一个对象数组,而不是字符串数组
dgaslides.push({image : src, title : title });
您正在将字符串保存到数组而不是对象 下面是一个JSFIDLE,其中包含代码的修改版本(没有超大型函数),可以按预期工作: 主要更改:
dgaslides.push({image:src,title:title})代码>
我已经将生成的数组输出到控制台,然后是您的硬编码数组-它们是相同的
编辑:您的硬编码标题与HTML不匹配,因此两个数组的内容略有不同,但它们的格式都正确。这里有一个更正的问题:您可以使用jQuery的map方法来简化任务。下面是代码
jQuery(function ($) {
var dgaslides = $('#dgaslides img').map(function () {
return {
image: $(this).attr('src'),
title: $(this).attr('title')
};
});
$.supersized({
slide_interval: 3000,
transition: 1,
transition_speed: 700,
horizontal_center: 1,
slide_links: 'blank',
slides: dgaslides
});
});
希望这有帮助。你说得对,穆萨!谢谢事实上,我刚刚发现了另一个问题:这是干净和简单的。谢谢Chandu Dexter
jQuery(function ($) {
var dgaslides = $('#dgaslides img').map(function () {
return {
image: $(this).attr('src'),
title: $(this).attr('title')
};
});
$.supersized({
slide_interval: 3000,
transition: 1,
transition_speed: 700,
horizontal_center: 1,
slide_links: 'blank',
slides: dgaslides
});
});