0

我有下面的代码正在尝试(不成功)从下面的输出字符串中删除最后一个逗号。

       jQuery(function($){
            var string = "{image : 'melbourne.jpg'},{image : 'tunnel.jpg'},{image : 'building.jpg'},"; 

            $.supersized({
                slide_interval          :   3000, 
                slides                  :   [ string.substring(0, string.length - 1) ]
            });
        });

但我需要的是这个:

 jQuery(function($){
            var string = "{image : 'melbourne.jpg'},{image : 'tunnel.jpg'},{image : 'building.jpg'},"; 

            $.supersized({
                slide_interval          :   3000, 
                slides                  :   [ {image : 'melbourne.jpg'},{image : 'tunnel.jpg'},{image : 'building.jpg'} ]
            });
        });

我尝试了一堆不同的东西,但无济于事。我不确定我做错了什么!

4

3 回答 3

1

你是对的str.substring(0, str.length - 1);

但是您没有var string = '{image : 'melbourne.jpg'},{image : 'tunnel.jpg'},{image : 'building.jpg'},';正确创建字符串对象。首先,您不希望在其周围加上引号。其次,它是畸形的。第三,听elclanrs的!

于 2013-09-27T02:32:52.887 回答
0

您需要先处理数据:

var imageStr = "{image : 'melbourne.jpg'},{image :'tunnel.jpg'},{image :'building.jpg'},";
imageStr = imageStr.substring(0, imageStr.length - 1)

imagesArray = imageStr.split(',');

var jsonObj;
var imageList = [];

for(var i = 0; i < imagesArray.length; i++){
    jsonObj = eval("("+imagesArray[i]+")");
imageList.push(jsonObj);    
}

var data = JSON.stringify(imageList);

处理后,您可以像这样使用数据变量:

slider: data
于 2013-09-27T02:38:10.540 回答
0

不要使用字符串传递数据,使用 javascript 对象。

   jQuery(function($){
        var slides = [{image : 'melbourne.jpg'},
                      {image : 'tunnel.jpg'},
                      {image : 'building.jpg'}]; 

        $.supersized({
            slide_interval          :   3000, 
            slides                  :   slides
        });
    });

您可能会说字符串来自服务器端,那么您应该修复服务器端的数据,让它可以被解析为一个 javascript 对象。

但如果你不听我的劝告,坚持那根弦,你可能会触到eval邪恶。

   jQuery(function($){
        var string = "{image : 'melbourne.jpg'},{image : 'tunnel.jpg'},{image : 'building.jpg'},"; 

        $.supersized({
            slide_interval          : 3000, 
            slides                  : eval("["+string.substring(0, string.length - 1)+"]")
        });
    });
于 2013-09-27T02:36:15.490 回答