2016-11-15 190 views
-1

问题是,当该页面加载时,它拉动.jpg图像,因为该扩展名是硬编码的(注意_image1.jpg)有时候可能没有.jpg图像,并有.png图像。我想最初拉动.jpg图像,但如果这是不可用我想要的.png图像...我怎么能做到这一点?我想知道是否有一种方法来重写扩展名,如果.jpg图像不可用。需要帮助将.jpg的扩展名替换为.png或转换图像

$(document).ready(function() { 
    dealers = $.parseJSON(dealer_json); 

    $('#productdealersTable .productdealers_dealerid').each(function(i, element) { 
     var elemName = $(this).attr("name"); 
     var elemValue = $(this).val(); 
     var count = elemName.substring(23, elemName.length); 
     elemName = elemName.replace('productdealers_dealerid','dealerid_display_value'); 
     $('#'+elemName).html($(this).find('option:selected').html()); 
     var name = $(this).find('option:selected').html(); 
     var cleanedname = name.replace(/[^a-z0-9]/gi,''); 
     $(this).parent().removeClass().addClass('fieldinput '+cleanedname).addClass(); 
     var elemValue = $(this).val(); 
     jQuery('#dealerid_display_value'+count).html('<img src="/folder-Files/dealerLogos/'+elemValue+'_image1.jpg" />'); 

     var linkDiv = $(this).parent().find('.snapshotLink'); 
     var mpDiv = $(this).parents('.half').find('.marketplace_div'); 
     $.each(dealers.dealers, function(i, item) { 
      if (dealers.dealers[i].id==elemValue) { 
       dealers.dealers[i].show_in_pims == true ? linkDiv.show() : linkDiv.hide(); 
       dealers.dealers[i].sc == true ? mpDiv.show() : mpDiv.hide(); 
       if (dealers.dealers[i].scraped == 1) { 
        $('#dealers_scraped'+count).val(dealers.dealers[i].scraped); 
       } 
       return false; 
      } 
     }); 
    }); 



<div class="productdealersItemHeader"> 
       <h3><span class="h3pad"><a href="javascript:void(0);" class="quickRetailersShowHide" id="quickRetailerOptionShowHide%count%" onclick="showQuickRetailerOptions(%count%);"><span class="dealerid_display_value" id="dealerid_display_value%count%"><img src="/Portal-Files/dealerLogos/%productdealers_dealerid_selectedValue%_image1.jpg"/></span></a></span></h3> 
       <div class="dealerHandle productdealersActive"></div> 
       <a href="javascript:void(0);" class="deleteRetailerLink deleteRowButton productdealersActive" id="productdealersDeleteImg%count%" onclick="deleteListRow('productdealers', '%count%');">Delete</a> 
</div> 
+0

在数据中存储正确的文件名/路径,否则您正在修复错误的问题。 –

+0

请问[mcve] –

+0

@KevinB不幸的是我无法控制存储哪个文件名/路径。 – Wkn445

回答

1

您可以针对图像一个简单的要求 - 如果它是可使用它,否则找PNG格式。

var image = "http://placekitten.com.s3.amazonaws.com/homepage-samples/408/287.jpg"; 

function setImages(el, imagesrc) { 
    $.get(imagesrc) 
    .done(function() { 
     document.getElementById(el).src = imagesrc; 
    }).fail(function() { 
     if (imagesrc.match(/\.jpg$/)) 
     setImages(el, imagesrc.replace(/\.jpg$/, ".png")) 
    }); 
} 


setImages("foo", image) 
+0

你能解释一下el参数是什么吗?或者我可以怎么称呼我的班级名称或ID?在你的例子中使用。不知道如何将“dealerid_display_value”传递给该函数 – Wkn445

+1

,在这种情况下,它是“foo”。不知道什么el意味着tho。它看起来好像应该包含一个元素ID。 –