2

我正在尝试从文件夹中读取图像列表以创建具有图像背景的 DIV(用作图像滑块)。我写的jQuery如下:

$.getJSON('../functions.php', function(images) {
  images.each( function() {
    $('#main').prepend('<div class="slider" style="background-image:url(' + ' (this) + ');"></div>');
  });
});

不幸的是,这不起作用...我在控制台中收到的错误消息是:

Uncaught SyntaxError: Unexpected token ILLEGAL

我究竟做错了什么?谢谢!

4

2 回答 2

3

SO中突出显示的语法给了我线索,您需要将其更改为:

$('#main').prepend('<div class="slider" style="background-image:url(' + this + ');"></div>');

你在那里有一个额外的报价(并且不需要()周围this......虽然它不会受到伤害。

更新

在解决了引用问题并且您收到了另一个错误之后,问题似乎是您的imagesJSON 正试图用 迭代.each,这不能用于对象文字。.each用于 jQuery 对象(因此用 包装images$()或用于迭代对象/数组($.each())的调用。你需要使用类似的东西:

$.each(images, function () {    // <---- I prefer
// or
$(images).each(function () {
于 2012-11-03T04:33:46.333 回答
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>');
    });
});
于 2012-11-03T04:34:32.807 回答