我正在尝试从文件夹中读取图像列表以创建具有图像背景的DIV(用作图像滑块)。我写的jQuery如下:
$.getJSON('../functions.php', function(images) {
images.each( function() {
$('#main').prepend('<div class="slider" style="background-image:url(' + ' (this) + ');"></div>');
});
});
不幸的是,这不起作用......我在控制台中收到的错误信息是:
未捕获的SyntaxError:意外的标记ILLEGAL
我做错了什么?谢谢!
答案 0 :(得分:3)
SO中的语法突出显示给了我一些线索,你需要将其更改为:
$('#main').prepend('<div class="slider" style="background-image:url(' + this + ');"></div>');
你有一个额外的引用(并不需要()
this
左右......虽然它不会受到伤害。
<强>更新强>:
在引用问题得到解决并且您收到了另一个错误之后,问题似乎是您的images
JSON正在尝试使用.each
进行迭代,这不能用于对象文字。 .each
用于jQuery对象(所以用images
包裹$()
)或者调用迭代对象/数组($.each()
)。你需要使用类似的东西:
$.each(images, function () { // <---- I prefer
// or
$(images).each(function () {
答案 1 :(得分:1)
您没有正确关闭报价。除此之外,假设images
是一个数组,你需要将它包装在jQuery对象中,以便访问对象的方法,$.each()
就是其中之一。否则,正如@Ian已经说过的那样,你可以在不同的光线下使用$.each(array, function() { //do stuff });
,并简单地将数组作为第一个变量传递,无论你使用匿名函数做什么。
正如你之前所说,你是色盲,因为语法高亮对你没用,我建议你至少计算你的报价对。在严重冗长的代码上......这将变得很困难..所以我唯一可以建议的是IDE(集成开发环境),例如NetBeans(我个人使用的)。
$.getJSON('../functions.php', function(images) {
$(images).each( function() {
$('#main').prepend('<div class="slider" style="background-image:url(' + this + ');"></div>');
});
});