JSON / jQuery语法问题?

时间:2012-11-03 04:32:20

标签: javascript jquery html json

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

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

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

  

未捕获的SyntaxError:意外的标记ILLEGAL

我做错了什么?谢谢!

2 个答案:

答案 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>');
    });
});