使用Javascript或jQuery删除最后一个字符

时间:2013-09-27 02:30:49

标签: javascript jquery

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

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

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

3 个答案:

答案 0 :(得分:1)

您的str.substring(0, str.length - 1);

是正确的

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

答案 1 :(得分: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)+"]")
        });
    });

答案 2 :(得分: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