1

如何使用 jquery 删除最后一个逗号','。下面是我的幻灯片图像背景代码 jquery,php 代码将在 javascript 中循环图像 url,意味着用户可以在管理员中更改图像:

                navigation              :   1,      //Slideshow controls on/off
                thumbnail_navigation    :   1,      //Thumbnail navigation
                slide_counter           :   1,      //Display slide numbers
                slide_captions          :   1,      //Slide caption (Pull from "title" in slides array)
                slides                  :   [       //Slideshow Images
                                                <?php    // this will looping  image background custom - xx_rusly_xx
                                                    $images = getFieldOrder('background_slideshow_image');
                                                        foreach($images as $image){
                                                            echo "{image : '";
                                                            echo get('background_slideshow_image',1,$image);
                                                            echo "'},";
                                                        } 
                                                ?>
                                            ]                           
            }); 
        });

    </script>

如果你看到我为循环图像 url 放了一些 php 代码

<?php    // this will looping  image background custom - xx_rusly_xx
$images = getFieldOrder('background_slideshow_image');
    foreach($images as $image){
        echo "{image : '";
        echo get('background_slideshow_image',1,$image);
        echo "'},";
    } 
?>

并且浏览器将使用 php 生成 javascript,如下所示:

//Components
        navigation              :   1,      //Slideshow controls on/off
        thumbnail_navigation    :   1,      //Thumbnail navigation
        slide_counter           :   1,      //Display slide numbers
        slide_captions          :   1,      //Slide caption (Pull from "title" in slides array)
        slides                  :   [       //Slideshow Images
        {image : 'http://iconcept-project.com/dev/gd/wp-content/files_mf/1.jpg'},
        {image : 'http://iconcept-project.com/dev/gd/wp-content/files_mf/2.jpg'},
        {image : 'http://iconcept-project.com/dev/gd/wp-content/files_mf/3.jpg'},
        {image : 'http://iconcept-project.com/dev/gd/wp-content/files_mf/4.jpg'},                                                                                                                   ]                           
    }); 
});         
</script>

问题是如何删除最后一行中的逗号,因为使用 Internet Explorer,除非我删除最后一个逗号,否则它不会运行。

{image : 'http://iconcept-project.com/dev/gd/wp-content/files_mf/4.jpg'},

这是完整代码-> http://pastebin.com/c1A7ZKGr

感谢帮助。

4

6 回答 6

2

问题不在于您的 js 脚本,而在于 php 脚本。像这样做:

<?php    // this will looping  image background custom - xx_rusly_xx
$comma = false;
$images = getFieldOrder('background_slideshow_image');
    foreach($images as $image){
        if ($comma) echo ","; else $comma=true;
        echo "{image : '";
        echo get('background_slideshow_image',1,$image);
        echo "'}";
    } 
?>
于 2012-05-09T10:15:02.110 回答
2

由于 JSON 在 JavaScript 中评估为有效的对象字面量,因此您应该使用json_encode [docs]

<?php    
    $images = getFieldOrder('background_slideshow_image');
    $out = array();
    foreach($images as $image){
        $out[] = array('image' => get('background_slideshow_image',1,$image));
    } 
    echo json_encode($out);
?>

(您必须删除[...]代码中的周围环境)

使用字符串手动构建文字和代码注定会失败(最终)。

于 2012-05-09T10:18:04.133 回答
1
​var string = ​'kurec,kur,kureika,'​;
string.substr(0,string.length-1)

http://jsfiddle.net/QVpWU/

于 2012-05-09T10:14:40.847 回答
1

我很好奇。你为什么不在 PHP 端这样做呢?

<?php    // this will looping  image background custom - xx_rusly_xx
$images = getFieldOrder('background_slideshow_image');
    foreach($images as $ind => $image){
        echo "{image : '";
        echo get('background_slideshow_image',1,$image);
        echo "'}".($ind == count($images)-1 ? '' : ','); // no comma for last image
    } 
?>
于 2012-05-09T10:16:04.713 回答
1

javascript:

s = s.substring(0, s.length - 1);

或使用json_encode而不是自制函数。

于 2012-05-09T10:16:50.737 回答
0

你应该在 php.ini 中控制它。

   foreach($images as $i => $image){
        echo $i === 0 ? "" : ",";
        echo "{image : '";
        echo get('background_slideshow_image',1,$image);
        echo "'}";
    } 
于 2012-05-09T10:17:06.883 回答