-4

我的服务器空间面临一些问题。图像正在使用服务器的所有空间,使其变慢。因为它是一个电子商务网站,所以它不会很慢,否则我们会失去客户。

如果我有以下情况:

SKU's :
ABC123-001 > catName > Phone
ABC753-851 > catName > MAC
AT1233-098 > catName > PC

如何使用 trim 使其如下:

SKU's :
123 > catName > Phone
753 > catName > MAC
1233 > catName > PC

我将在以下脚本中使用它:

<script type="text/javascript">
$(function(){
    var sku = $("#ProductBreadcrumb ul li:last").text();
    $(".ProductThumbImage img").attr('src','http://img.example.com/images/'+catName+'/'+sku+'.jpg');
});
</script>

所以,基本上,图片链接的输出将是:

http://img.example.com/images/phone/123.jpg
http://img.example.com/images/mac/753.jpg
http://img.example.com/images/pc/1233.jpg

所以,是的,我必须面对的第一个问题是.. 我怎样才能修剪它?

我不熟悉 JavaScript,所以任何帮助将不胜感激:D

4

2 回答 2

0

这是一个工作示例。我不确定重命名与性能有什么关系,但你去吧;)

编辑: 抱歉忘记添加其他部分:) http://jsfiddle.net/Vandeplas/YH9uT/2/

var a = [
    'ABC123-001 > catName > Phone',
    'ABC753-851 > catName > MAC',
    'AT1233-098 > catName > PC'
],
    b=[];

$.each(a, function(index, item){
    //split the folders
    f= item.split(' > ');
    /* take the first folder remove everything after '-' 
     * remove everything non numeric and return it */
    f[0]=f[0].substr(0, f[0].indexOf('-')).replace(/[^0-9]/g, '');
    //rejoin the folders
    b.push(f.join(' > '));
});

console.log(a, b);
于 2012-09-05T10:52:27.587 回答
0

编辑:

我得到了我正在寻找的解决方案。代码如下:

  <script type="text/javascript">
      $(function(){
         var catname = $("#ProductBreadcrumb ul li:last").previous('a').text();

         $(".ProductThumbImage img").attr('src','http://img.example.com/'+catname+'/default.jpg');
      });
  </script>

因此,如果类别名称是“电话”,则生成的 src 将是http://img.example.com/phone/default.jpg

顺便说一句,此代码是为了避免 BigCommerce 服务器将所有图像下载到服务器。

于 2012-09-06T14:10:53.370 回答